User and Role Management
The Data Virtuality Server has special stored procedures for user and role management.
User Management
SYSADMIN.addUser
SYSADMIN.addUser(IN name string NOT NULL, IN pwd string NOT NULL, IN role_name string NOT NULL, IN loginAllowed boolean, IN concurrentQueries integer, IN maxQueryTime integer, IN maxRows integer, IN timezone string, OUT id biginteger NOT NULL RESULT)
Example
CALL "SYSADMIN.addUser"(
"name" => 'user1',
"pwd" => 'password',
"role_name" => 'connect-dv-role',
"loginAllowed" => true,
"concurrentQueries" => 10,
"maxQueryTime" => 5,
"maxRows" => 100,
"timezone" => 'UTC'
);;
Please note that any schedules without an explicitly specified timezone will run in the timezone of the user who owns them. If that user does not have a timezone set, the schedules will run in the server’s timezone.
For more information on query limits please refer to Resource Governor.
SYSADMIN.importUser
SYSADMIN.importUser(IN name string NOT NULL, IN encryptedPwd string NOT NULL, IN role_name string NOT NULL, IN loginAllowed boolean, IN concurrentQueries integer, IN maxQueryTime integer, IN maxRows integer, IN timezone string, OUT id biginteger NOT NULL RESULT)
Please keep in mind that this procedure:
Requires an encrypted password, not the real password;
Updates password and adds (if necessary) the indicated role for existing users;
Throws an exception if you are trying to import a "permanent" ("Admin") user.
SYSADMIN.renameUser
SYSADMIN.renameUser(IN name string NOT NULL, IN newName string NOT NULL)
SYSADMIN.deleteUser
SYSADMIN.deleteUser(IN name string NOT NULL)
SYSADMIN.changeUserPwd
SYSADMIN.changeUserPwd(IN name string NOT NULL, IN pwd, IN encryptedPwd)
SYSADMIN.getEncryptedUserPwd
SYSADMIN.getEncryptedUserPwd(IN name string NOT NULL, OUT encryptedPwd string NOT NULL RESULT)
SYSADMIN.getCurrentUser
This procedure returns the name of the current user.
SYSADMIN.getCurrentUser(OUT username string NOT NULL RESULT)
SYSADMIN.allowUserLogin
This procedure allows or disallows user login.
SYSADMIN.allowUserLogin(IN name string NOT NULL, IN loginAllowed boolean NOT NULL)
SYSADMIN.setUserTimezone
This procedure allows to set default user’s time zone.
SYSADMIN.setUserTimezone(IN name string NOT NULL, IN timezone string)
Example
CALL "SYSADMIN.setUserTimezone"(
"name" => 'user1',
"timezone" => 'UTC'
);;
Please note that any schedules without an explicitly specified timezone will run in the timezone of the user who owns them. If that user does not have a timezone set, the schedules will run in the server’s timezone.
Role Management
SYSADMIN.addRole
SYSADMIN.addRole(IN name string NOT NULL, IN allowCreateTempTables boolean, OUT id biginteger NOT NULL RESULT)
SYSADMIN.renameRole
SYSADMIN.renameRole(IN name string NOT NULL, IN newName string NOT NULL)
SYSADMIN.deleteRole
SYSADMIN.deleteRole(IN name string NOT NULL)
SYSADMIN.addUserRole
SYSADMIN.addUserRole(IN user_name string NOT NULL, IN role_name string NOT NULL)
SYSADMIN.deleteUserRole
SYSADMIN.deleteUserRole(IN user_name string NOT NULL, IN role_name string NOT NULL)
Query Limits
SYSADMIN.setUserLimits(IN name string NOT NULL, IN concurrentQueries integer, IN maxQueryTime integer, IN maxRows integer)
Example
CALL "SYSADMIN.setUserLimits"(
"name" => 'user1',
"concurrentQueries" => 10,
"maxQueryTime" => 5,
"maxRows" => 100
);;
For more information on query limits please read Resource Governor