Data Virtuality Server には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, 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
);;

loginAllowed parameter available since v4.3

concurrentQueries, maxQueryTime, maxRows available since v4.8

クエリ制限の詳細については、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 OPTIONS (Annotation 'Maximal query execution time in minutes, -1 means unlimited'), IN maxRows integer, OUT id biginteger NOT NULL RESULT)

このプロシージャにご留意ください:

  • 本物のパスワードではなく、 暗号化されたパスワードが必要です;
  • パスワードをADDし、既存のUserに指定されたRoleを追加します;
  • permanent」("Admin")ユーザをインポートしようとすると例外をスローします。

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

このプロシージャは、現在のユーザの名前を返します。

SYSADMIN.getCurrentUser(OUT username string NOT NULL RESULT)

SYSADMIN.allowUserLogin

このプロシージャは、ユーザーのログインを許可または拒否します。

SYSADMIN.allowUserLogin(IN name string NOT NULL, IN loginAllowed boolean NOT NULL)

SYSADMIN.allowUserLogin procedure available since v4.1

encryptedPwd property in SYSADMIN.changeUserPwd available since v4.1

Role Management

SYSADMIN.addRole

SYSADMIN.addRole(IN name string NOT NULL, IN allowCreateTempTables boolean, OUT id biginteger NOT NULL RESULT)

Parameter allowCreateTempTables is deprecated since v4.1

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
);;

クエリ制限の詳細については、以下をご覧ください。 Resource Governor

SYSADMIN.setUserLimits procedure available since v4.8