jxq
作者jxq2018-02-19 00:40
其它, gbase

GBase 8t 安全特性之自主访问控制(十八)承担角色

字数 999阅读 1442评论 0赞 2

(一)概述
(二)数据库权限
(三)控制数据访问的 SQL 语句
(四)ANSI 数据库与非 ANSI 数据库
(五)表权限
(六)列权限
(七)分片权限
(八)TYPE 权限
(九)视图权限
(十)SEQUENCE 权限
(十一)例程权限
(十二)语言权限
(十三)DBA 特权例程
(十四)角色
(十五)创建角色
(十六)将权限授予角色
(十七)将角色授予用户

(十八)承担角色

在将非缺省角色授予用户之后,该用户必须使用 SET ROLE 语句来启用它。用户一建立到数据库的连接,即可承担缺省角色。如果未将缺省角色授予用户,则当建立到数据库的连接时,该用户不会拥有数据库中的任何当前角色。用户可更改当前角色,或使用 SET ROLE 语句来切换为新角色。

使用 SET ROLE 语句,还可以将角色设置为 NULL 值或 NONE,以禁用当前角色。当将角色设置为 DEFAULT 时,启用缺省角色。

当用户承担新角色时,除了作为单个用户或作为 PUBLIC 已经持有的权限之外,用户获得该角色的所有权限。如果将一个角色授予另一角色,且已将另一角色分配给用户,则除了作为单个用户或作为 PUBLIC 已经持有的权限之外,该用户同时取得这两个角色的权限。可以将几个角色授予一个用户,但用户只能如 SET ROLE 指定的那样承担不超过一个非缺省角色。如果重复执行 SET ROLE 语句,则新角色替代旧角色成为当前角色。

SET ROLE 语句保持有效,直到终止会话或关闭数据库或用户执行另一 SET ROLE 语句时为止。

如果作为触发器或存储过程的一部分来执行 SET ROLE 语句,且将 WITH GRANT OPTION 角色授予触发器或存储过程的所有者,则即使未授予该角色,也会启用该角色。在存储过程语言(SPL)例程执行结束之后,用户不会自动失去通过执行该例程而获得的那些权限。

诸如 EXTEND 和 DBSECADM 这样的内建角色始终有效,无需用户使用 SET ROLE 语句来激活。仅当 IFX_EXTEND_ROLE 配置参数设置为1时,使用 EXTEND 角色来创建和删除以 C 或 Java 编写的外部例程。对于 EXTEND 角色,无需 SET ROLE 语句即可生效。只有数据库系统管理员(DBSA)或 informix 用户可以将 EXTEND 角色授予其他用户。(详请参阅《GBase 8t 管理员参考》

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广