在开发项目中,我们希望为同一MarkLogic服务器上的每个应用程序提供单独的安全数据库。
由于不同应用程序中的角色具有相同的名称,所以不能在同一个安全数据库中创建这些角色。
是否有任何方法在同一MarkLogic服务器上创建和维护多个安全数据库来处理多个应用程序?
我们目前创建新的安全数据库的方法如下:
管理:管理员-NOSUCHUSER:(错误: user 0000)没有这样的用户7071164303237443533
我们的新数据库似乎无法正常工作(安全数据库)。如果我们在这方面得到任何解决方案/建议,那将是很有帮助的。
发布于 2015-08-17 12:52:13
虽然Admin (端口8001)假定安全性是在一个名为" security“的数据库中管理的,但您可以为此目的使用任何数据库。当使用Management创建内容数据库时,指定安全性-数据库属性。指示要使用哪个数据库。在通知内容数据库使用该数据库之前,必须存在特定于应用程序的安全数据库。这样,您就可以为"foo“和"bar”应用程序提供foo-content、foo-security、bar-content和bar-security。这类似于使用特定于应用程序的模块数据库,而不是所有应用程序默认的“模块”数据库。
请注意,您将无法使用Admin来检查或管理其他安全数据库的内容,但您可以为此使用Management。
发布于 2015-08-17 12:58:46
就个人而言,对不同的事物使用不同的名称是有意义的。如果你不给角色起不同的名字,事情会在某一时刻变得混乱。
但要回答您的问题,是的,您可以拥有多个安全数据库,只要您给出它们独特的名称。戴夫已经提供了一些方法来做这件事,但我必须指出,有一些渔获物。请记住,安全数据库还包含许多来自MarkLogic的内部定义,比如特权、amps,而不是最小的内置用户和角色。
不过,有一种方法可以在共享数据库中拥有一组通用内容,并将特定应用程序的内容添加到特定数据库中。如果您想对现有的安全数据库进行扩展,例如使用一个foo-security
数据库,那么只需像其他任何数据库一样创建它。之后,使用Admin、admin或management将安全性添加为子数据库。
哈哈!
发布于 2018-10-23 20:00:54
个人建议:“不要这样做”架构了其他一些多租户或隔离应用程序的方法,然后使用不同的安全数据库。虽然可以工作,但通往幸福的道路是痛苦和困难的。类似于使用Linux系统启动卷。如果它100%完美,一切都很好,如果一件事消失了,症状很可能是系统完全没有功能--或者更糟。
此外,还有一些“第三方”(或用户编写的)工具,可以对安全数据库进行假设--在你打破常规之后,你会发现这些工具--也许是在你的所有数据被搞砸或者你的系统无法访问之前,也许不是。更糟糕的是--一切看起来都正常--如果你对ML内部没有很深的理解,那么设计测试用例来验证实际上所有东西都是“工作的”是很有挑战性的。
https://stackoverflow.com/questions/32048487
复制相似问题