User Administration & Role Management
Technical database users are used only for administrative purpose such as creating new objects in database, assigning privileges to other users, on packages, applications etc.
SAP HANA User Administration Activities
Depending on business needs and configuration of HANA system, there are different user activities that can be performed using user administration tool like HANA studio.
Most common activities include −
- Create Users
- Grant roles to users
- Define and Create Roles
- Deleting Users
- Resetting user passwords
- Reactivating users after too many failed logon attempts
- Deactivating users when it is required
How to create Users in HANA Studio?
Only database users with the system privilege ROLE ADMIN are allowed to create users and roles in HANA studio. To create users and roles in HANA studio, go to HANA Administrator Console. You will see security tab in System view −
When you expand security tab, it gives option of User and Roles. To create a new user right click on User and go to New User. New window will open where you define User and User parameters.
Enter User name (mandate) and in Authentication field enter password. Password is applied, while saving password for a new user. You can also choose to create a restricted user.
The specified role name must not be identical to the name of an existing user or role. The password rules include a minimal password length and a definition of which character types (lower, upper, digit, special characters) have to be part of the password.
Different Authorization methods can be configured like SAML, X509 certificates, SAP Logon ticket, etc. Users in the database can be authenticated by varying mechanisms −
Internal authentication mechanism using a password.
External mechanisms such as Kerberos, SAML, SAP Logon Ticket, SAP Assertion Ticket or X.509.
A user can be authenticated by more than one mechanism at a time. However, only one password and one principal name for Kerberos can be valid at any one time. One authentication mechanism has to be specified to allow the user to connect and work with the database instance.
It also gives an option to define validity of user, you can mention validity interval by selecting the dates. Validity specification is an optional user parameter.
Some users that are, by default, delivered with the SAP HANA database are − SYS, SYSTEM, _SYS_REPO, _SYS_STATISTICS.
Once this is done, the next step is to define privileges for user profile. There are different types of privileges that can be added to a user profile.
Granted Roles to a User
This is used to add inbuilt SAP.HANA roles to user profile or to add custom roles created under Roles tab. Custom roles allow you to define roles as per access requirement and you can add these roles directly to user profile. This removes need to remember and add objects to a user profile every time for different access types.
PUBLIC − This is Generic role and is assigned to all database users by default. This role contains read only access to system views and execute privileges for some procedures. These roles cannot be revoked.
It contains all privileges required for using the information modeler in the SAP HANA studio.
There are different types of System privileges that can be added to a user profile. To add a system privileges to a user profile, click on + sign.
System privileges are used for Backup/Restore, User Administration, Instance start and stop, etc.
It contains the similar privileges as that in MODELING role, but with the addition that this role is allowed to grant these privileges to other users. It also contains the repository privileges to work with imported objects.
This is a type of privilege, required for adding Data from objects to user profile.
Given below are common supported System Privileges −
It authorizes the debugging of a procedure call, called by a different user. Additionally, the DEBUG privilege for the corresponding procedure is needed.
Controls the execution of the following auditing-related commands − CREATE AUDIT POLICY, DROP AUDIT POLICY and ALTER AUDIT POLICY and the changes of the auditing configuration. Also allows access to AUDIT_LOG system view.
It authorizes the execution of the following command − ALTER SYSTEM CLEAR AUDIT LOG. Also allows access to AUDIT_LOG system view.
It authorizes BACKUP and RECOVERY commands for defining and initiating backup and recovery procedures.
It authorizes the BACKUP command to initiate a backup process.
It authorizes users to have unfiltered read-only access to all system views. Normally, the content of these views is filtered based on the privileges of the accessing user.
It authorizes the creation of database schemas using the CREATE SCHEMA command. By default, each user owns one schema, with this privilege the user is allowed to create additional schemas.
CREATE STRUCTURED PRIVILEGE
It authorizes the creation of Structured Privileges (Analytical Privileges). Only the owner of an Analytical Privilege can further grant or revoke that privilege to other users or roles.
It authorizes the credential commands − CREATE/ALTER/DROP CREDENTIAL.
It authorizes reading all data in the system views. It also enables execution of any Data Definition Language (DDL) commands in the SAP HANA database
A user having this privilege cannot select or change data stored tables for which they do not have access privileges, but they can drop tables or modify table definitions.
It authorizes all commands related to databases in a multi-database, such as CREATE, DROP, ALTER, RENAME, BACKUP, RECOVERY.
It authorizes export activity in the database via the EXPORT TABLE command.
Note that beside this privilege the user requires the SELECT privilege on the source tables to be exported.
It authorizes the import activity in the database using the IMPORT commands.
Note that beside this privilege the user requires the INSERT privilege on the target tables to be imported.
It authorizes changing of system settings.
It authorizes the SET SYSTEM LICENSE command install a new license.
It authorizes the ALTER SYSTEM LOGGING [ON|OFF] commands to enable or disable the log flush mechanism.
It authorizes the ALTER SYSTEM commands for EVENTs.
It authorizes the ALTER SYSTEM commands concerning SQL PLAN CACHE and ALTER SYSTEM UPDATE STATISTICS commands, which influence the behavior of the query optimizer.
This privilege authorizes commands concerning system resources. For example, ALTER SYSTEM RECLAIM DATAVOLUME and ALTER SYSTEM RESET MONITORING VIEW. It also authorizes many of the commands available in the Management Console.
This privilege authorizes the creation and deletion of roles using the CREATE ROLE and DROP ROLE commands. It also authorizes the granting and revocation of roles using the GRANT and REVOKE commands.
Activated roles, meaning roles whose creator is the pre-defined user _SYS_REPO, can neither be granted to other roles or users nor dropped directly. Not even users having ROLE ADMIN privilege are able to do so. Please check documentation concerning activated objects.
It authorizes the execution of a savepoint process using the ALTER SYSTEM SAVEPOINT command.
Components of the SAP HANA database can create new system privileges. These privileges use the component-name as first identifier of the system privilege and the component-privilege-name as the second identifier.
Object privileges are also known as SQL privileges. These privileges are used to allow access on objects like Select, Insert, Update and Delete of tables, Views or Schemas.
Given below are possible types of Object Privileges −
Object privilege on database objects that exist only in runtime
Object privilege on activated objects created in the repository, like calculation views
Object privilege on schema containing activated objects created in the repository,
Object/SQL Privileges are collection of all DDL and DML privileges on database objects.
Given below are common supported Object Privileges −
There are multiple database objects in HANA database, so not all the privileges are applicable to all kinds of database objects.
Object Privileges and their applicability on database objects −
Sometimes, it is required that data in the same view should not be accessible to other users who does not have any relevant requirement for that data.
Analytic privileges are used to limit the access on HANA Information Views at object level. We can apply row and column level security in Analytic Privileges.
Analytic Privileges are used for −
- Allocation of row and column level security for specific value range.
- Allocation of row and column level security for modeling views.
In the SAP HANA repository, you can set package authorizations for a specific user or for a role. Package privileges are used to allow access to data models- Analytic or Calculation views or on to Repository objects. All privileges that are assigned to a repository package are assigned to all sub packages too. You can also mention if assigned user authorizations can be passed to other users.
Steps to add a package privileges to User profile −
Click on Package privilege tab in HANA studio under User creation → Choose + to add one or more packages. Use Ctrl key to select multiple packages.
In the Select Repository Package dialog, use all or part of the package name to locate the repository package that you want to authorize access to.
Select one or more repository packages that you want to authorize access to, the selected packages appear in the Package Privileges tab.
Given below are grant privileges, which are used on repository packages to authorize user to modify the objects −
REPO.READ − Read access to the selected package and design-time objects (both native and imported)
REPO.EDIT_NATIVE_OBJECTS − Authorization to modify objects in packages.
Grantable to Others − If you choose ‘Yes’ for this, this allows assigned user authorization to pass to the other users.
Application privileges in a user profile are used to define authorization for access to HANA XS application. This can be assigned to an individual user or to the group of users. Application privileges can also be used to provide different level of access to the same application like to provide advanced functions for database Administrators and read-only access to normal users.
To define Application specific privileges in a user profile or to add group of users, below privileges should be used −
- Application-privileges file (.xsprivileges)
- Application-access file (.xsaccess)
- Role-definition file (<RoleName>.hdbrole)