暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

账号和权限系统相关命令

酷数据库 2023-10-23
122
创建账号(CREATE USER)
  • 语法


    CREATE USER user_specification [, user_specification] ...
    user_specification: user [ auth_option ]
    auth_option: IDENTIFIED BY 'auth#string'
                
  • 示例
    • 创建一个名为lily,只能从30.9.73.96登录的账号,密码为123456。


      CREATE USER lily@30.9.73.96 IDENTIFIED BY '123456';        
    • 创建一个名为david,可以从任意主机登录的账号,密码为空。


      CREATE USER david@'%'; 
删除账号(DROP USER)
  • 语法


    DROP USER user [, user] ...    
  • 示例

    移除账号lily@30.9.73.96:


    DROP USER lily@30.9.73.96;       
修改账号密码(SET PASSWORD)
  • 语法


    SET PASSWORD FOR user = password_option
    
    password_option: {
        PASSWORD('auth_string')
    }        
  • 示例

    修改账号lily@30.9.73.96的密码为123456。


    SET PASSWORD FOR lily@30.9.73.96 = PASSWORD('123456')         

给账号授权(GRANT)

  • 语法


    GRANT
        priv_type[, priv_type] ...
        ON priv_level
        TO user_specification [, user_specification] ...
        [WITH GRANT OPTION]
    priv_level: {
      | db_name.*
      | db_name.tbl_name
      | tbl_name
    }
    user_specification:
        user [ auth_option ]
    auth_option: {
        IDENTIFIED BY 'auth#string'
    }
                

    说明

    GRANT语句里面的账号如果不存在,同时又没有提供IDENTIFIED BY信息,则报账号不存在异常;如果提供了IDENTIFIED BY信息,则会创建该账号同时授权。

  • 示例
    • 在数据库easydb下面,创建一个用户名为david,可以在任意主机登录,具有easydb数据库所有权限的账号。


      #方法1:先创建账号再授权
      CREATE USER david@'%' IDENTIFIED BY 'your#password';
      GRANT ALL PRIVILEGES ON easydb.* to david@'%';
      
      #方法2:一条语句完成创建账号和授权两个操作
      GRANT ALL PRIVILEGES ON easydb.* to david@'%' IDENTIFIED BY 'your#password';
    • 在数据库easydb下面,创建一个用户名为hanson,可以在任意主机登录,具有easydb.employees表所有权限的账号。


      GRANT ALL PRIVILEGES ON easydb.employees to hanson@'%' 
      IDENTIFIED BY 'your#password';    
    • 在数据库easydb下面,创建一个用户名为hanson,只能在192.168.3.10登录,具有easydb.emp表的INSERT 和 SELECT权限的账号。


      GRANT INSERT,SELECT ON easydb.emp to hanson@'192.168.3.10' 
      IDENTIFIED BY 'your#password';
    • 在数据库easydb下面创建一个只读账号actro,可以在任意主机登录。


      GRANT SELECT ON easydb.* to actro@'%' IDENTIFIED BY 'your#password';          
回收权限(REVOKE)
  • 语法
    • 删除账号在某个权限级别下的权限项,具体权限级别由priv_level指定。


      REVOKE
      priv_type
      [, priv_type] ...
      ON priv_level         
    • 删除账号在系统内(数据库级别和表级别的)的所有权限项。


      REVOKE ALL PRIVILEGES, GRANT OPTION
      FROM user [, user] ...           
  • 示例
    • 删除hanson@’%’在easydb.emp表的CREATE、DROP、INDEX权限。


      REVOKE CREATE,DROP,INDEX ON easydb.emp FROM hanson@'%';      
    • 删掉账号lily@30.9.73.96的所有权限。


      REVOKE ALL PRIVILEGES,GRANT OPTION FROM lily@30.9.73.96;       

      说明

      为了兼容MySQL,需同时写上GRANT OPTION。

查询授权(SHOW GRANTS)
  • 语法


    SHOW GRANTS[ FOR user@host];           
  • 示例


    SHOW GRANTS FOR user1@host;       

说明

5.3.6及以上版本,SHOW GRANTS只显示当前用户权限,可在阿里云PolarDB-X 1.0控制台查看所有账号和权限信息。


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论