激活角色
一个用户可以被授予多个角色。授予角色后,如果被授予的角色在会话中处于激活状态,则用户可以使用该角色所包含的权限;否则,用户无法使用该角色所包含的权限。如果需要确认当前会话中有哪些角色处于激活状态,可以使用 CURRENT_ROLE() 函数查询。
默认情况下,向其他用户或角色中授予的角色不会在会话中自动激活。
指定用户在登录时默认激活的角色
seekdb 支持通过 SET DEFAULT ROLE 语句或 ALTER USER 语句的 DEFAULT ROLE 子句指定用户在登录时默认激活的角色。
前提条件
提示
如果用户是为自身设置默认激活已经被授予的角色,则不需要任何权限。
-
当前用户必须拥有待指定的角色,才能执行本操作。
-
当前用户还必须拥有
CREATE USER权限,才可以执行SET DEFAULT ROLE语句或ALTER USER语句。
通过 SET DEFAULT ROLE 语句设置的操作示例
使用 SET DEFAULT ROLE 语句时,每条语句支持同时指定多个用户在登录时默认激活的角色。
-
指定用户
test1在登录时,默认停用用户被授予的所有角色SET DEFAULT ROLE NONE TO test1;如果需要指定多个用户,例如,指定用户
test1和test2在登录时默认停用用户被授予的所有角色,示例如下:SET DEFAULT ROLE NONE TO test1,test2; -
指定用户
test1在登录时,默认激活用户被授予的所有角色SET DEFAULT ROLE ALL TO test1; -
指定用户
test1在登录时,默认激活用户被授予的employee和developer角色SET DEFAULT ROLE employee,developer TO test1;