文章目录

  • 第十三章 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相关推荐

  1. 第六章 SQL命令 CREATE INDEX(一)

    文章目录 第六章 SQL命令 CREATE INDEX(一) 大纲 参数 描述 权限与锁 仅支持兼容性选项 索引名称 现有索引 表明 字段名称 嵌入对象中的字段(`%SerialObject`) 索引 ...

  2. 第十六章 SQL命令 CREATE TABLE(三)

    文章目录 第十六章 SQL命令 CREATE TABLE(三) 字段数据约束 NULL和NOT NULL UNIQUE DEFAULT DEFAULT Keywords ON UPDATE Colla ...

  3. 第二十二章 SQL命令 CREATE TRIGGER(二)

    文章目录 第二十二章 SQL命令 CREATE TRIGGER(二) SQL触发器代码 ObjectScript触发代码 字段引用和伪字段引用 引用流属性 引用SQLComputed属性 标签 方法调 ...

  4. 第十四章 SQL命令 CREATE TABLE(一)

    文章目录 第十四章 SQL命令 CREATE TABLE(一) 大纲 参数 描述 语法概述 SQL安全和权限 表名 表存在 第十四章 SQL命令 CREATE TABLE(一) 创建表 大纲 CREA ...

  5. 第二十一章 SQL命令 CREATE TRIGGER(一)

    文章目录 第二十一章 SQL命令 CREATE TRIGGER(一) 大纲 参数 描述 权限和锁 定义触发器的其他方式 参数 trigname event ORDER REFERENCING acti ...

  6. 第四十七章 SQL命令 GRANT(一)

    文章目录 第四十七章 SQL命令 GRANT(一) 大纲 参数 描述 GRANT admin-privilege GRANT role GRANT object-privilege 对象所有者权限 第 ...

  7. 第六十六章 SQL命令 REVOKE

    文章目录 第六十六章 SQL命令 REVOKE 大纲 参数 描述 撤销的角色 撤销对象权限 撤销对象所有者特权 撤销表级和列级特权 CASCADE 或 RESTRICT 对缓存查询的影响 IRIS S ...

  8. 第三章 SQL命令 ALTER USER

    文章目录 第三章 SQL命令 ALTER USER 大纲 参数 描述 权限 示例 第三章 SQL命令 ALTER USER 修改用户密码. 大纲 ALTER USER user-name IDENTI ...

  9. 第八十一章 SQL命令 UNLOCK

    文章目录 第八十一章 SQL命令 UNLOCK 大纲 参数 描述 权限 Nonexistent Table 示例 第八十一章 SQL命令 UNLOCK 解锁表 大纲 UNLOCK [TABLE] ta ...

最新文章

  1. 系统架构师-基础到企业应用架构-表现层
  2. 在编写flash游戏播放声音时的一个要注意的地方
  3. 程序员Geek们如何使用电脑
  4. wxWidgets:exec 示例演示 wxExecute 和相关函数
  5. Windows下快速删除上万个文件和子目录
  6. Java关键字与保留字说明及使用
  7. Autodesk Map 3D 2012 新功能介绍
  8. [洛谷P4081][USACO17DEC]Standing Out from the Herd
  9. 360两个html页面合并,如何用html2pdf把多个连接的PHP网页合并成一个pdf?
  10. python自动交易 缠论_缠论自动交易系统实现了
  11. stm8s103k3 周期 捕获_STM8S 输入捕获学习
  12. matlab线圈磁场,载流圆线圈磁场的MATLAB数值计算
  13. 记某单机游戏的一次内购破解
  14. 远程桌面连接只有2个会话活动
  15. cad指定许可服务器,AutoCAD许可证版本
  16. 声音在计算机内表现形式为,声音与视频信息在计算机内的表现形式是什么
  17. [英语阅读]2010年内衣新宠:抗皱文胸
  18. 03. isasupperclass
  19. Python实现常见的排序算法
  20. ftp服务器文件传输,FTP服务器之间传输文件

热门文章

  1. [附源码]Java计算机毕业设计SSM防疫期社区人员信息动态管理系统
  2. html5 url有什么作用,urldecode 作用
  3. 专插本之路——C语言学习
  4. SpringSecurity(一)【简介】
  5. python执行cmd系统命令获取返回值的几种方式
  6. MaskedTextBox控件学习
  7. C++猴子摘桃--递归实现
  8. ChatGPT带来的影响有哪些
  9. MQTT——EMQX学习笔记07——topic、topic filter和主题通配符
  10. excel 的条件格式(二)