#使用角色
角色的使用包括将角色授权给某个用户,或者解除角色对某个用户的授权。
# 授权角色
在确认被授权用户是安全、可信的,且其所需要的权限与角色包含的权限相匹配后,可以对用户进行角色的授权。
执行角色授权需要满足至少一条如下条件:
- 授权者已拥有该指定角色,且带ADMIN OPTION。
- 授权者拥有系统特权GRANT ANY ROLE。
- 授权者拥有SECURITY_ADMIN安全管理员角色。
Caution:
- 发起授权时,确保被授权的用户或角色安全可信。且需确认角色所拥有的权限范围是否超出本次授权诉求,防止授权超出业务需求,引入数据库安全风险。
- 慎重将DBA角色授予用户,拥有DBA角色的用户被允许发起任意操作,包括损坏系统表等高危操作,可能导致数据库出现高危故障。
执行角色授权的操作步骤为:
以满足授权条件的用户账号登录YashanDB。
根据业务情况,确定被授权的用户是否可以给其他用户或角色进行再授权,如需传递管理该角色,使用with admin option。
使用GRANT语句对另一个用户发起授权操作。
GRANT CONNECT TO sales; GRANT CONNECT TO sales WITH ADMIN OPTION;
# 解除角色授权
在确认被解除授权的用户不再需要该角色包含的权限,且解除后不会影响业务的正常运行后,可以对用户进行角色的解除授权。解除角色授权后,已登录的用户不受影响,但用户下次登录时将失去该角色及其管理的一组权限。
执行解除角色授权需要满足至少一条如下条件:(解除授权者可以与该授权记录发起者不是同一个用户)
- 解除授权者已拥有需要解除授权的角色,且带ADMIN OPTION。
- 解除授权者拥有GRANT ANY ROLE系统特权。
- 解除授权者拥有SECURITY_ADMIN安全管理员角色。
Caution:
解除角色授权可能使某些数据库业务无权限运行,请谨慎操作。
执行解除角色授权的操作步骤为:
以满足解除授权条件的用户账号登录YashanDB。
使用REVOKE语句对另一个用户发起解除角色授权操作。
REVOKE CONNECT FROM sales;