第十三章 SQL命令 CREATE ROLE
文章目录
- 第十三章 SQL命令 CREATE ROLE
- 大纲
- 参数
- 描述
- 权限
- 示例
第十三章 SQL命令 CREATE ROLE
创建角色
大纲
CREATE ROLE role-name
参数
role-name
- 要创建的角色的名称,它是一个标识符。角色名称不区分大小写。
描述
CREATE ROLE
命令可创建角色。角色是可以分配给多个用户的一组命名权限。一个角色可以分配给多个用户,一个用户可以分配多个角色。角色在系统范围内可用,它不限于特定的命名空间。
角色名可以是最多64
个字符的任何有效标识符。角色名称必须遵循标识符命名约定。角色名称可以包含Unicode
字符。角色名称不区分大小写。如果选中了支持分隔标识符配置选项(默认设置),则角色名可以是用引号括起来的分隔标识符。如果是分隔标识符,则角色名可以是SQL保留字。它可以包含句点(.
)、插入符号(^
)和两个字符的箭头序列(->
)。它不能包含逗号(,
)或冒号(:
)字符。它可以以除星号(*
)以外的任何有效字符开头。
最初创建角色时,角色只是一个名称;它没有权限。要向角色添加权限,请使用GRANT
命令。还可以使用GRANT
命令为角色分配一个或多个角色。这允许创建角色层次结构。
如果调用CREATE ROLE
来创建已经存在的角色,SQL会发出SQLCODE-118
错误。可以通过调用$SYSTEM.SQL.Security.RoleExists()
方法确定角色是否已存在:
WRITE $SYSTEM.SQL.Security.RoleExists("%All"),!WRITE $SYSTEM.SQL.Security.RoleExists("Madmen")
如果指定的角色存在,则此方法返回1
,如果该角色不存在,则返回0。角色名称不区分大小写。
要删除角色,请使用DROP ROLE
命令。
权限
CREATE ROLE
命令是特权操作。在嵌入式SQL中使用CREATE ROLE
之前,需要以具有%Admin_Secure:USE
权限的用户身份登录。否则将导致SQLCODE-99
错误(特权冲突)。使用$SYSTEM.Security.Login()
方法分配具有适当权限的用户:
DO $SYSTEM.Security.Login(username,password)&sql( )
必须具有%Service_Login:Use
权限才能调用$SYSTEM.Security.Login()
方法。
示例
以下示例尝试创建名为BkUser
的角色。第一个示例中的用户“fred”
没有创建角色权限。第二个示例中的用户“_system”
确实拥有CREATE ROLE
权限。
ClassMethod CreateRole()
{d $SYSTEM.Security.Login("yao","YaoPassword")&sql(CREATE ROLE BkUser)if SQLCODE = -99 {w !,"没有创建角色的权限" } elseif SQLCODE = -118 {w !,"角色已经存在" } else {w !,"创建了一个角色。错误代码是: ",SQLCODE }
}
ClassMethod CreateRole1()
{d $SYSTEM.Security.Login("_SYSTEM","SYS")
Main&sql(CREATE ROLE BkUser)if SQLCODE = -99 {w !,"没有创建角色的权限" } elseif SQLCODE = -118 {w !,"角色已经存在" } else {w !,"创建了一个角色。错误代码是: ",SQLCODE }
Cleanups toggle = $RANDOM(2)if toggle = 0 { &sql(DROP ROLE BkUser)w !,"删除角色错误代码: ",SQLCODE} else { w !,"未删除"q }
}
第十三章 SQL命令 CREATE ROLE相关推荐
- 第六章 SQL命令 CREATE INDEX(一)
文章目录 第六章 SQL命令 CREATE INDEX(一) 大纲 参数 描述 权限与锁 仅支持兼容性选项 索引名称 现有索引 表明 字段名称 嵌入对象中的字段(`%SerialObject`) 索引 ...
- 第十六章 SQL命令 CREATE TABLE(三)
文章目录 第十六章 SQL命令 CREATE TABLE(三) 字段数据约束 NULL和NOT NULL UNIQUE DEFAULT DEFAULT Keywords ON UPDATE Colla ...
- 第二十二章 SQL命令 CREATE TRIGGER(二)
文章目录 第二十二章 SQL命令 CREATE TRIGGER(二) SQL触发器代码 ObjectScript触发代码 字段引用和伪字段引用 引用流属性 引用SQLComputed属性 标签 方法调 ...
- 第十四章 SQL命令 CREATE TABLE(一)
文章目录 第十四章 SQL命令 CREATE TABLE(一) 大纲 参数 描述 语法概述 SQL安全和权限 表名 表存在 第十四章 SQL命令 CREATE TABLE(一) 创建表 大纲 CREA ...
- 第二十一章 SQL命令 CREATE TRIGGER(一)
文章目录 第二十一章 SQL命令 CREATE TRIGGER(一) 大纲 参数 描述 权限和锁 定义触发器的其他方式 参数 trigname event ORDER REFERENCING acti ...
- 第四十七章 SQL命令 GRANT(一)
文章目录 第四十七章 SQL命令 GRANT(一) 大纲 参数 描述 GRANT admin-privilege GRANT role GRANT object-privilege 对象所有者权限 第 ...
- 第六十六章 SQL命令 REVOKE
文章目录 第六十六章 SQL命令 REVOKE 大纲 参数 描述 撤销的角色 撤销对象权限 撤销对象所有者特权 撤销表级和列级特权 CASCADE 或 RESTRICT 对缓存查询的影响 IRIS S ...
- 第三章 SQL命令 ALTER USER
文章目录 第三章 SQL命令 ALTER USER 大纲 参数 描述 权限 示例 第三章 SQL命令 ALTER USER 修改用户密码. 大纲 ALTER USER user-name IDENTI ...
- 第八十一章 SQL命令 UNLOCK
文章目录 第八十一章 SQL命令 UNLOCK 大纲 参数 描述 权限 Nonexistent Table 示例 第八十一章 SQL命令 UNLOCK 解锁表 大纲 UNLOCK [TABLE] ta ...
最新文章
- 系统架构师-基础到企业应用架构-表现层
- 在编写flash游戏播放声音时的一个要注意的地方
- 程序员Geek们如何使用电脑
- wxWidgets:exec 示例演示 wxExecute 和相关函数
- Windows下快速删除上万个文件和子目录
- Java关键字与保留字说明及使用
- Autodesk Map 3D 2012 新功能介绍
- [洛谷P4081][USACO17DEC]Standing Out from the Herd
- 360两个html页面合并,如何用html2pdf把多个连接的PHP网页合并成一个pdf?
- python自动交易 缠论_缠论自动交易系统实现了
- stm8s103k3 周期 捕获_STM8S 输入捕获学习
- matlab线圈磁场,载流圆线圈磁场的MATLAB数值计算
- 记某单机游戏的一次内购破解
- 远程桌面连接只有2个会话活动
- cad指定许可服务器,AutoCAD许可证版本
- 声音在计算机内表现形式为,声音与视频信息在计算机内的表现形式是什么
- [英语阅读]2010年内衣新宠:抗皱文胸
- 03. isasupperclass
- Python实现常见的排序算法
- ftp服务器文件传输,FTP服务器之间传输文件