#权限授予与收回
在确认被授权用户是安全、可信的,且其所需权限与实际使用者身份相匹配后,可以对用户进行授权。
一旦确认某个用户或角色不再需要某项权限,应及时进行权限收回,但执行操作前还需仔细确认收回权限不会影响业务正常运行。
mysql模式下创建的用户,可以被授予/收回的权限是yashan模式和mysql模式两套权限机制的并集(msyql模式相关权限与yashan模式相关权限),请根据实际需求合理授权。
授予给用户的权限、收回用户的权限,均立即生效。
# 前提条件
执行CREATE USER语句创建用户,并按需为新用户指定密码。
CREATE USER SALES1 IDENTIFIED BY 'your_Password1';
# 权限授予
确认被授权对象的权限需求:
“最小权限”原则:根据业务需求分析整理被授权对象的需要使用的最小权限集合,若已有角色承载了恰当的权限集,也可以考虑直接为用户授予相应角色。
是否需要权限转授:如可能需要转授某个权限/角色,则需指定WITH GRANT OPTION。
使用具备足够权限的用户登录YashanDB。
执行GRANT(mysql模式)语句,对目标用户发起授权,可选权限集为msyql模式相关权限。
-- 授予多个系统特权 GRANT CREATE TABLESPACE,CREATE USER,GRANT OPTION ON *.* TO SALES WITH GRANT OPTION; -- 将指定模式下的所有权限授予SALES用户 GRANT ALL ON sales.* TO SALES WITH GRANT OPTION;执行GRANT(yashan模式)语句,对目标用户发起授权,可选权限集为yashan模式相关权限。
-- 直接授予系统特权CREATE ANY TABLE GRANT CREATE ANY TABLE TO sales; -- 直接授予系统特权SELECT ANY TABLE,并允许sales用户转授该权限给其他用户/角色 GRANT SELECT ANY TABLE TO sales WITH ADMIN OPTION; -- 直接授予表area的SELECT权限,并允许sales用户转授该权限给其他用户/角色 GRANT SELECT ON area TO sales WITH GRANT OPTION; -- 授予RESOURCE角色,从而间接授予该角色的权限集 GRANT RESOURCE TO sales1 WITH ADMIN OPTION; -- 用户sales转授系统特权SELECT ANY TABLE给用户sales1 conn sales/sales GRANT SELECT ANY TABLE TO sales1;Note:
授权SYSDBA和SYSOPER角色时,指定WITH ADMIN OPTION无效。
# 权限收回
Caution:
收回权限可能会引起某些数据库业务无权限运行,请谨慎操作。
使用具备足够权限的用户登录YashanDB。
执行REVOKE语句,对另一个用户/角色发起授权收回操作。
-- 收回用户sales对表area的SELECT权限 REVOKE SELECT ON area FROM sales; -- 收回用户sales1的RESOURCE角色 REVOKE RESOURCE FROM sales1; -- 用户sales可以收回转授给sales1的系统特权SELECT ANY TABLE conn sales/sales REVOKE SELECT ANY TABLE FROM sales1;

