The table below lists all the
sec built-in
functions (in this namespace:
http://marklogic.com/xdmp/security
).
The security function module is installed as the following file:
install_dir/Modules/MarkLogic/security.xqy
where install_dir
is the directory in which
MarkLogic Server is installed.
To use the security.xqy module in your own XQuery modules, include the following line in your XQuery prolog:
import module "http://marklogic.com/xdmp/security" at
"/MarkLogic/security.xqy"
The library uses the sec:
namespace, predefined in the
server.
NOTE: When using these functions to administer
security for an application, be sure to execute them against the security
database configured for your application's database. Function calls
in this library can only be executed against a a security
database (for example, Security); the database named
Security is automatically configured when MarkLogic Server
is installed, and it is the default security database. To execute
these functions against the security database,
you can specify the database
option in xdmp:eval
or xdmp:invoke
, or you can run it in an App Server that
has your security database configured as its database.
Function name | Description |
---|---|
sec.addQueryRolesets | This function adds query rolesets to the Security database. |
sec.ampAddRoles | Adds the roles ($role-names) to the list of roles granted to the amp ($namespace, $local-name, $document-uri). |
sec.ampDocCollections | Returns a sequence of strings corresponding to the collection uri's that amps belong to. |
sec.ampDocPermissions | Returns a sequence of permission elements that all newly created amp documents receive. |
sec.ampExists | This function returns true if the specified amp exists in the security database. |
sec.ampGetRoles | Returns a sequence of role names for the roles directly assigned to the amp ($namespace, $local-name, $document-uri). |
sec.ampRemoveRoles | Removes a role ($role-name) from the set of roles included by the amp ($namespace, $local-name, $document-uri). |
sec.ampsChangeModulesDatabase | This function changes all amps that refer to one modules database to refer to a different database. |
sec.ampsCollection | Returns a string corresponding to the uri for the amps collection. |
sec.ampSetRoles | Assigns the amp identified by $namespace, $local-name and $document-uri to have the roles identified by $roles-names. |
sec.checkAdmin | Throws an error if the current user does not have the admin-ui privilege. |
sec.collectionAddPermissions | Add the permissions $permissions to the protected collection identified by $uri. |
sec.collectionGetPermissions | Returns a sequence of permission elements corresponding to the current permissions granted to the protected collection identified by $uri. |
sec.collectionRemovePermissions | Removes the permissions $permissions from the protected collection identified by $uri. |
sec.collectionsCollection | Returns a string corresponding to the uri for the protected collections collection. |
sec.collectionSetPermissions | Sets the permissions of a protected collection identified by $uri to $permissions. |
sec.compartmentGetRoles | This function returns a list of roles in the specified compartment. |
sec.createAmp | Creates a new amp in the system database for the context database. |
sec.createCredential | This function creates a new security credential with the specified values. |
sec.createExternalSecurity | This function creates an external authentication configuration object and returns the id of the configuration. |
sec.createPrivilege | Creates a new privilege and returns the new privilege-id. |
sec.createRole | Creates a new role in the system database for the context database. |
sec.createUser | Creates a new user in the system database for the context database. |
sec.createUserWithRole | Creates a new user in the system database for the context database. |
sec.credentialGetCertificate | This function returns the certificate for a credential, if it exists. |
sec.credentialGetDescription | This function returns the description of the specified credential. |
sec.credentialGetId | This function returns the ID of the specified credential. |
sec.credentialGetPassword | This function returns the encrypted password for a credential, if it exists. |
sec.credentialGetPermissions | This function returns the permissions for a credential. |
sec.credentialGetPrivateKey | This function returns the private key for a credential, if it exists. |
sec.credentialGetSigning | This function returns the signing flag for a credential. |
sec.credentialGetTargets | This function returns the targets for a credential, if they exist. |
sec.credentialGetUsername | This function returns the username for a credential, if it exists. |
sec.credentialSetCertificate | This function updates the certificate for the credential. |
sec.credentialSetDescription | This function updates the description for the specified credential. |
sec.credentialSetName | This function updates the name of a credential. |
sec.credentialSetPassword | This function updates the password for the specified credential. |
sec.credentialSetPermissions | This function updates the permission for the specified credential. |
sec.credentialSetSigning | This function updates the signing flag for the specified credential. |
sec.credentialSetTargets | This function updates the targets for the specified credential. |
sec.credentialSetUsername | This function updates the username for the specified credential. |
sec.credentialsGetAws | Returns the Amazon Web Services access key, secret key, and session token (if one exists) used to access the Amazon Simple Storage Service. |
sec.credentialsGetAzure | Returns the Azure storage account name and access key used to access Microsoft Azure Blob Storage. |
sec.credentialsSetAws | Sets the Amazon Web Services credentials. |
sec.credentialsSetAzure | Sets the Azure storage account name and access key. |
sec.externalSecurityClearCache | This function clears the login cache in the named external authorization configuration object. |
sec.externalSecurityGetAuthentication | This function returns the authentication protocol set in the named external authorization configuration object. |
sec.externalSecurityGetAuthorization | This function returns the authorization scheme set in the named external authorization configuration object. |
sec.externalSecurityGetCacheTimeout | This function returns the login cache timeout (in seconds) set in the named external authorization configuration object. |
sec.externalSecurityGetDescription | This function returns the description set in the named external authorization configuration object. |
sec.externalSecurityGetHttpOptions | This function returns the http options for the named SAML server configuration. |
sec.externalSecurityGetLdapAttribute | This function returns the LDAP attribute for user lookup set in the named external authorization configuration object. |
sec.externalSecurityGetLdapBase | This function returns the LDAP base for user lookup set in the named external authorization configuration object. |
sec.externalSecurityGetLdapBindMethod | This function returns the bind method set on the named external security object. |
sec.externalSecurityGetLdapCertificate | This function returns the LDAP client certificate set for the name external security configuration. |
sec.externalSecurityGetLdapDefaultUser | This function returns the default LDAP user name set in the named external authorization configuration object. |
sec.externalSecurityGetLdapMemberAttribute | This function returns the member attribute for the specified LDAP server. |
sec.externalSecurityGetLdapMemberofAttribute | This function returns the memberof attribute for the specified LDAP server. |
sec.externalSecurityGetLdapNestedLookup | This function returns a boolean value specifying whether ldap nested group lookups are enabled. |
sec.externalSecurityGetLdapPrivateKey | This function returns the private key set for the name external security configuration. |
sec.externalSecurityGetLdapRemoveDomain | This function returns the ldap-remove-domain setting for the named external security configuration. |
sec.externalSecurityGetLdapServerUri | This function returns the LDAP server uri set in the named external authorization configuration object. |
sec.externalSecurityGetLdapStartTls | This function returns the ldap-start-tls setting for the named external security configuration. |
sec.externalSecurityGetSamlAssertionHost | This function returns the SAML assertion host for the named external security configuration. |
sec.externalSecurityGetSamlAttributeNames | This function returns the SAML attribute names set for the named external security configuration. |
sec.externalSecurityGetSamlDestination | This function returns the saml destination in the external security configuration. |
sec.externalSecurityGetSamlEntityId | This function returns the SAML entity id set for the named external security configuration. |
sec.externalSecurityGetSamlIdpCertificateAuthority | This function returns the saml idp certificate authority in the external security configuration. |
sec.externalSecurityGetSamlIssuer | This function returns the saml issuer in the external security configuration. |
sec.externalSecurityGetSamlPrivilegeAttributeName | This function returns the SAML privilege attribute name set for the named external security configuration. |
sec.externalSecurityGetSamlSpCertificate | This function returns the saml Service Provider certificate in the external security configuration. |
sec.externalSecuritySetAuthentication | This function sets the authentication protocol for the named external authorization configuration object. |
sec.externalSecuritySetAuthorization | This function sets the authentication scheme for the named external authorization configuration object. |
sec.externalSecuritySetCacheTimeout | This function sets the login cache timeout for the named external authorization configuration object. |
sec.externalSecuritySetDescription | This function sets the description for the named external authorization configuration object. |
sec.externalSecuritySetHttpOptions | This function sets the http options for the named SAML server configuration. |
sec.externalSecuritySetLdapAttribute | This function sets the LDAP attribute for user lookup for the named external authorization configuration object. |
sec.externalSecuritySetLdapBase | This function sets the LDAP base for user lookup for the named external authorization configuration object. |
sec.externalSecuritySetLdapBindMethod | This function sets the bind method on the named external security object. |
sec.externalSecuritySetLdapCertificate | This function sets the LDAP certificate and private key for the named external security configuration. |
sec.externalSecuritySetLdapDefaultUser | This function sets the default user name for the named external authorization configuration object. |
sec.externalSecuritySetLdapMemberAttribute | This function sets the member LDAP attribute for group lookup. |
sec.externalSecuritySetLdapMemberofAttribute | This function sets the memberof LDAP attribute for group lookup. |
sec.externalSecuritySetLdapNestedLookup | This function sets the nested-lookup boolean. |
sec.externalSecuritySetLdapPassword | This function sets the default user password for the named external authorization configuration object. |
sec.externalSecuritySetLdapRemoveDomain | This function updates the ldap-remove-domain setting in the external security configuration. |
sec.externalSecuritySetLdapServerUri | This function sets the LDAP server uri for the named external authorization configuration object. |
sec.externalSecuritySetLdapStartTls | This function updates the ldap-start-tls setting in the external security configuration. |
sec.externalSecuritySetName | This function sets the name of the external authorization configuration object. |
sec.externalSecuritySetSamlAssertionHost | This function sets the SAML assertion host in the SAML configuration. |
sec.externalSecuritySetSamlAttributeNames | This function sets one or more SAML attribute named used by other security objects to identify the named SAML configuration. |
sec.externalSecuritySetSamlDestination | This function updates the saml destination in the external security configuration. |
sec.externalSecuritySetSamlEntityId | \ This function sets the SAML entity ID used by other security objects to identify the named SAML configuration. |
sec.externalSecuritySetSamlIdpCertificateAuthority | This function updates the saml idp certificate authority in the external security configuration. |
sec.externalSecuritySetSamlIssuer | This function updates the saml issuer in the external security configuration. |
sec.externalSecuritySetSamlPrivilegeAttributeName | This function sets the SAML privilege attribute name in the SAML configuration. |
sec.externalSecuritySetSamlSpCertificate | This function updates the saml sp certificate and private key in the external security configuration. |
sec.getAmp | Returns an sec:amp element corresponding to an amp identified by ($namespace, $local-name, $document-uri). |
sec.getCollection | Gets the security document corresponding to a protected collection with uri equal to $uri. |
sec.getCompartments | This function returns a list of all of the compartments. |
sec.getCredential | Gets a credential. |
sec.getCredentialById | This function returns the specified PEM encoded X509 certificate. |
sec.getCredentialIds | This function returns a list of all of the credential IDs in the security database. |
sec.getCredentialNames | This function returns a list of all of the credential names in the security database. |
sec.getDistinctPermissions | Returns a sequence of permission elements made up of a concatenation of $output-perms and the distinct permission elements of $input-perms. |
sec.getPrivilege | Returns a sec:privilege element corresponding to a privilege identified by ($action,$kind). |
sec.getRoleIds | Returns a sequence of unique sec:role-id elements that corresponds to the sequence of role names $role-names. |
sec.getRoleNames | Returns sequence of unique sec:role-name's that corresponds to the sequence of role IDs $role-ids. |
sec.getSamlEntity | This function returns the named SAML entity. |
sec.getSamlEntityIds | This function returns the SAML entity ids stored in the Security database. |
sec.getUserNames | Returns sequence of unique sec:user-names that corresponds to the sequence of user IDs $user-ids. |
sec.ldapServer | This function configures an LDAP server for use by the sec:create-external-security function. |
sec.pathAddPermissions | This function adds permissions for a protected path. |
sec.pathGetPermissions | This function gets a list of permissions for the path named. |
sec.pathRemovePermissions | This function removes permissions for a protected path. |
sec.pathSetPermissions | This function sets the permissions for a protected path. |
sec.privDocCollections | Returns a sequence of strings corresponding to the collection uri's that privileges belong to. |
sec.privDocPermissions | Returns a sequence of permission elements that all newly created privilege documents receive. |
sec.privilegeAddRoles | Adds the roles ($role-names) to the list of roles assigned to the privilege ($action,$kind). |
sec.privilegeExists | This function returns true if the specified privilege exists. |
sec.privilegeGetRoles | Returns a sequence of role names for the roles assigned to the privilege ($action,$kind). |
sec.privilegeRemoveRoles | Removes roles ($role-names) from the roles assigned to the privilege ($action,$kind). |
sec.privilegesCollection | Returns a string corresponding to the uri for the privileges collection. |
sec.privilegeSetName | Changes the sec:privilege-name of a sec:privilege to $new-privilege-name. |
sec.privilegeSetRoles | Assigns the privilege ($action,$kind) to have the roles identified by $role-names. |
sec.protectCollection | Protects a collection $uri with the given permissions ($permissions). |
sec.protectedPathDocPermissions | Returns a sequence of permission elements that all newly created protected-path documents receive. |
sec.protectedPathsCollection | This function returns the collection of protected paths. |
sec.protectPath | This function protects the path specified, restricting the ability to view content based on the user's permissions. |
sec.queryRoleset | This function creates a query roleset that can be passed into a function used to add or remove rolesets. |
sec.queryRolesets | This is a helper function to return a query-rolesets element from a list of query-roleset elements. |
sec.queryRolesetsCollection | This function returns the collection of query rolesets. |
sec.queryRolesetsDocPermissions | Returns a sequence of permission elements that all newly created query-rolesets documents receive. |
sec.queryRolesetsId | This function returns the ID of a query-rolesets. |
sec.removeAmp | Removes the amp ($namespace, $local-name, $document-uri, $database) and returns empty-sequence(). |
sec.removeCredential | This function removes the specified credential. |
sec.removeCredentialById | This function removes the specified credential. |
sec.removeExternalSecurity | This function deletes the named external authentication configuration object. |
sec.removePath | This function removes protection from the specified protected path and removes the path from the Security database. |
sec.removePrivilege | Removes the privilege identified by ($action,$kind). |
sec.removeQueryRolesets | This function removes query rolesets from the Security database. |
sec.removeRole | Removes the role ($role-name). |
sec.removeRoleFromAmps | Removes references to the role ($role-name) from all amps. |
sec.removeRoleFromPrivileges | Removes references to the role ($role-name) from all privileges. |
sec.removeRoleFromRoles | Removes references to the role ($role-name) from all other roles. |
sec.removeRoleFromUsers | Removes references to the role ($role-name) from all users. |
sec.removeUser | Removes the user with name $user-name. |
sec.resecureCredentials | This function re-encrypts credentials, if necessary. |
sec.roleAddRoles | Adds new roles ($new-roles) to the role specified by $role-name. |
sec.roleDocCollections | Returns a sequence of strings corresponding to the collection uri's that roles belong to. |
sec.roleDocPermissions | Returns a sequence of permission elements that all newly created role documents receive. |
sec.roleExists | This function returns true if the specified role exists in the security database. |
sec.roleGetCompartment | This function returns the compartment for the specified role. |
sec.roleGetDefaultCollections | Returns a sequence of strings corresponding to the uri's of the role's default collections. |
sec.roleGetDefaultPermissions | Returns a sequence of permission elements corresponding to the role's default permissions. |
sec.roleGetDescription | Returns the description for the specified role. |
sec.roleGetExternalNames | This function returns the external LDAP group names assigned to the named role. |
sec.roleGetQueries | Returns the queries for the specified role. |
sec.roleGetRoles | Returns a sequence of role names for the roles directly assigned to the given role ($role-name). |
sec.rolePrivileges | Returns a set of privilege elements corresponding to all privileges that a role has. |
sec.roleRemoveRoles | Removes the roles ($role-names) from the set of roles included by the role ($role-name). |
sec.rolesCollection | Returns a string corresponding to the uri for the roles collection. |
sec.roleSetDefaultCollections | Sets the default collections of a role with name $role-name to $collections. |
sec.roleSetDefaultPermissions | Sets the default permissions for a role with name $role-name. |
sec.roleSetDescription | Changes the description of the role identified by $role-name to $description. |
sec.roleSetExternalNames | This function sets a role to be matched to one or more external LDAP distinguished names. |
sec.roleSetName | Changes the sec:role-name of a role from $role-name to $new-role-name. |
sec.roleSetQueries | Sets the queries of a role with name $role-name to $queries. |
sec.roleSetQuery | Sets the $capability query of a role with $role-name to $query. |
sec.roleSetRoles | Assigns roles (named $role-names) to be the set of included roles for the role ($role-name). |
sec.samlEntityDelete | This function deletes the named SAML entity. |
sec.samlEntityInsert | This function inserts a SAML entity into the Security database. |
sec.samlServer | This function configures an SAML server for use by the sec:create-external-security function. |
sec.securityCollection | Returns a string corresponding to the uri for the Security collection. |
sec.securityInstalled | Returns fn:true() if security has been installed on the current database. |
sec.securityNamespace | Returns a string corresponding to the uri of the security namespace. |
sec.securityPathNamespace | This function creates a protected namespace. |
sec.securityVersion | Returns the current version of the security database. |
sec.setRealm | Changes the realm of this security database to $realm. |
sec.uidForName | Returns the uids for the named user or () if no such user exists. |
sec.unprotectCollection | Removes the protection of a collection $uri. |
sec.unprotectPath | This function removes protection from the specified protected path, without removing the path itself from the Security database. |
sec.uriCredentialTarget | This function generates a sec:credential-target element, for use with sec:create-credential. |
sec.userAddRoles | Adds the roles ($role-names) to the list of roles granted to the user ($user-name). |
sec.userDocCollections | Returns a sequence of strings corresponding to the collection uri's that users belong to. |
sec.userDocPermissions | Returns a sequence of permission elements that all newly created user documents receive. |
sec.userExists | This function returns true if the specified user exists in the security database. |
sec.userGetDefaultCollections | Returns a sequence of strings corresponding to the uri's of the user's default collections. |
sec.userGetDefaultPermissions | Returns a sequence of permission elements corresponding to the user's default permissions. |
sec.userGetDescription | Returns the user's description. |
sec.userGetExternalNames | This function returns the external LDAP group names assigned to the named user. |
sec.userGetPasswordExtra | This function returns the extra information for the specified user. |
sec.userGetQueries | Returns the queries for the specified user. |
sec.userGetRoles | Returns a sequence of role names for the roles directly assigned to the user ($user-name). |
sec.userPrivileges | Returns a set of privilege elements corresponding to all privileges that a user has. |
sec.userRemoveRoles | Removes the roles ($role-names) from the list of roles granted to the user ($user-name). |
sec.usersCollection | Returns a string corresponding to the uri for the users collection. |
sec.userSetDefaultCollections | Sets the default collections of a user with name $user-name to $collections. |
sec.userSetDefaultPermissions | Sets the default permissions for a user with name $user-name. |
sec.userSetDescription | Changes the description of the user identified by $user-name to $description. |
sec.userSetExternalNames | This function sets the external names for the named user. |
sec.userSetName | Changes the name of the user from $user-name to $new-user-name. |
sec.userSetPassword | Changes the password for the user identified by $user-name to $password. |
sec.userSetPasswordExtra | This function sets extra information for the specified user. |
sec.userSetQueries | Sets the queries of a user with name $user-name to $queries. |
sec.userSetQuery | Sets the $capability query of a user with $user-name to $query. |
sec.userSetRoles | Assigns the user with name $user-name to have the roles identified by $role-names. |
sec.validatePermissions | This function throws the SEC_NOPERMCAP exception if a permission has no capability specified and it throws the SEC-NOPERMROLEID exception if there is no role specified in the permission. |