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