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, 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.

クエリ制限の詳細については、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)

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

  • 本物のパスワードではなく、 暗号化されたパスワードが必要です;

  • パスワードを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.setUserTimezone

このプロシージャは、デフォルトのユーザーのタイムゾーンを設定できます。

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

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