Я звоню в sec: role-exists(). Я пытаюсь выяснить, какие разрешения необходимы для предоставления этой возможности кому-то, кроме администратора. Ошибка, которую я возвращаю, подразумевает, что мне нужна привилегия http://marklogic.com/xdmp/privileges/get-role.Как предоставить привилегии http://marklogic.com/xdmp/privileges/get-role?
SEC-PRIVDNE: xdmp:security-assert("http://marklogic.com/xdmp/privileges/get-role", "execute") -- Privilege does not exist: action(http://marklogic.com/xdmp/privileges/get-role), kind(execute)
Однако, когда я пытаюсь предоставить эту роль, используя учетную запись администратора через секунду: привилегий адд-роли, он говорит мне, что привилегия не существует.
[1.0-ml] SEC-PRIVDNE: (err:FOER0000) Privilege does not exist: action(http://marklogic.com/xdmp/privileges/get-role), kind(execute)
Любые идеи?
Вот фрагмент кода, который я использую для предоставления, который я запускаю как admin.
(: grant the needed privileges to the role :)
let $grant_privs :=
xdmp:invoke-function(
function() {
let $required_roles := (
"http://marklogic.com/xdmp/privileges/create-role",
"http://marklogic.com/xdmp/privileges/remove-role",
"http://marklogic.com/xdmp/privileges/get-role-ids",
"http://marklogic.com/xdmp/privileges/get-role-names",
"http://marklogic.com/xdmp/privileges/get-role",
"http://marklogic.com/xdmp/privileges/xdmp-invoke-in",
"http://marklogic.com/xdmp/privileges/xdmp-invoke"
)
return
for $r in $required_roles
return
sec:privilege-add-roles(
$r,
"execute",
"auth-lib"
)
},
<options xmlns="xdmp:eval">
<database>{ xdmp:security-database() }</database>
<transaction-mode>update-auto-commit</transaction-mode>
<isolation>different-transaction</isolation>
</options>
)
Вы можете написать код, который вы используете, чтобы создать эту привилегию? – wst
Я обновил вопрос, включив код. –