第三十七章 SQL命令 DROP ROLE
第三十七章 SQL命令 DROP ROLE
删除角色
大纲
DROP ROLE role-name
参数
role-name
- 要删除的角色的名称。名称是一个标识符。角色名称不区分大小写。
描述
DROP ROLE
语句删除角色。删除角色时, IRIS会将其从已授予该角色的所有用户和角色中撤消,并将其从数据库中删除。
可以通过调用$SYSTEM.SQL.Security.RoleExists()
方法来确定角色是否存在。如果尝试删除不存在(或已被删除)的角色,则DROP ROLE
将发出SQLCODE-118
错误。
权限
DROP ROLE
命令是特权操作。在嵌入式SQL中使用DROP ROLE
之前,至少需要满足以下要求之一:
- 必须具有%Admin_Secure:USE
权限。
- 该角色的所有者。
- 已被授予具有管理员选项的角色。
否则将导致SQLCODE-99
错误(特权冲突)。
使用$SYSTEM.Security.Login()
方法分配具有适当权限的用户:
DO $SYSTEM.Security.Login("_SYSTEM","SYS")
&sql( )
必须具有%Service_Login:Use
权限才能调用$SYSTEM.Security.Login
方法。
示例
下面的嵌入式SQL示例创建名为BkUser
的角色,稍后将其删除:
ClassMethod DropRole()
{
DO $SYSTEM.Security.Login("MyName","SecretPassword")
&sql(
CREATE ROLE BkName
)
if SQLCODE=-99 {
w !,"没有创建角色的权限"
} else {
w !,"创建角色"
}
/* Use role */
&sql(
DROP ROLE BkName
)
if SQLCODE=-99 {
w !,"没有删除角色的权限"
} else {
w !,"删除橘色"
}
}