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