您的位置:首页 > 数据库

第二章 SQL命令参考-SET SESSIONAUTHORIZATION

2017-11-17 19:37 190 查看
SET SESSIONAUTHORIZATION
 
Sets the session role identifier and thecurrent role identifier of the current session.
 
Synopsis
SET [SESSION |LOCAL] SESSION AUTHORIZATION rolename
SET [SESSION |LOCAL] SESSION AUTHORIZATION DEFAULT
RESET SESSIONAUTHORIZATION
 
Description
此命令将会话角色标识符和当前SQL会话上下文的当前角色标识符设置为角色名称。角色名称可以写成标识符或字符串文字。例如,使用此命令可以暂时成为非特权用户,然后再切换回超级用户。
会话角色标识符最初设置为客户端提供的(可能已认证的)角色名称。
当前的角色标识符通常等于会话用户标识符,但是可能在setuid函数和类似机制的情况下暂时改变;它也可以通过SET ROLE进行更改。当前用户标识符与权限检查相关。
会话用户标识只有在初始会话用户(认证用户)具有超级用户权限的情况下才能被改变。否则,该命令仅在指定了经过验证的用户名时才被接受。
DEFAULT和RESET形式将会话和当前用户标识符重置为最初认证的用户名。这些形式可以由任何用户执行。
 
Parameters
SESSION
指定该命令对当前会话生效。 这是默认的。
LOCAL
指定该命令仅对当前事务生效。 COMMIT或ROLLBACK后,会话级别的设置再次生效。 请注意,如果SET LOCAL在事务外执行,则它将不起作用。
rolename
要承担的角色的名称。
NONE
RESET
将会话和当前角色标识重置为用于登录的角色标识。
 
Examples
SELECTSESSION_USER, CURRENT_USER;
session_user |current_user
--------------+--------------
peter  | peter
SET SESSIONAUTHORIZATION 'paul';
SELECTSESSION_USER, CURRENT_USER;
session_user |current_user
--------------+--------------
 
paul| paul
 
Compatibility
SQL标准允许一些其他表达式代替文字角色名称,但这些选项在实践中并不重要。 Greenplum数据库允许标识符语法(角色名),而SQL不支持。 SQL在事务过程中不允许此命令; Greenplum数据库不做这个限制。 SESSION和LOCAL修饰符是一个Greenplum数据库扩展,RESET语法也是如此。
 
See Also
SETROLE
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: