#权限授予与收回

在确认被授权用户是安全、可信的,且其所需权限与实际使用者身份相匹配后,可以对用户进行授权。

一旦确认某个用户或角色不再需要某项权限,应及时进行权限收回,但执行操作前还需仔细确认收回权限不会影响业务正常运行。

mysql模式下创建的用户,可以被授予/收回的权限是yashan模式和mysql模式两套权限机制的并集(msyql模式相关权限yashan模式相关权限),请根据实际需求合理授权。

授予给用户的权限、收回用户的权限,均立即生效。

# 前提条件

执行CREATE USER语句创建用户,并按需为新用户指定密码。

CREATE USER SALES1 IDENTIFIED BY 'your_Password1';

# 权限授予

  1. 确认被授权对象的权限需求:

    • “最小权限”原则:根据业务需求分析整理被授权对象的需要使用的最小权限集合,若已有角色承载了恰当的权限集,也可以考虑直接为用户授予相应角色。

    • 是否需要权限转授:如可能需要转授某个权限/角色,则需指定WITH GRANT OPTION。

  2. 使用具备足够权限的用户登录YashanDB。

  3. 执行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;
    
  4. 执行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:

收回权限可能会引起某些数据库业务无权限运行,请谨慎操作。

  1. 使用具备足够权限的用户登录YashanDB。

  2. 执行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;
    
pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流