MySQL如何实现用户管理与权限管理

41次阅读
没有评论

共计 2845 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要为大家展示了“MySQL 如何实现用户管理与权限管理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“MySQL 如何实现用户管理与权限管理”这篇文章吧。

— 操作环境
mysql show variables like version  
+—————+——–+
| Variable_name | Value  |
+—————+——–+
| version       | 5.6.25 |
+—————+——–+
1 row in set (0.04 sec)

背景知识补充:
user   表中 host 列的值的意义
%             匹配所有主机
localhost    localhost 不会被解析成 IP 地址,直接通过 UNIXsocket 连接
127.0.0.1     会通过 TCP/IP
协议连接,并且只能在本机访问;
::1 ::1       就是兼容支持 ipv6 的,表示同 ipv4 的
127.0.0.1

一:用户管理

1. 查看用户
mysql select host,user,password from mysql.user where user like
andy  

2. 创建数据库用户
– 指定密码创建新用户,% 表示任意,即 andy02 可以从任意主机访问数据库  
mysql create user andy02 @ % identified by oracle  
Query OK, 0 rows affected (0.03 sec)
 
3. 用户改密码
mysql set password for andy02=password(mysql
mysql flush privileges;

4. 删除用户
– 查看当前系统中已存在的用户  
mysql select user,host,Password from mysql.user;  
– 使用 drop
user 命令删除用户  
mysql drop user andy02 @ %     注意:如果不指定 @ %,默认缺省,则删除的是 %。
mysql select user,host,Password from mysql.user where user like
andy%  
Empty set (0.00 sec)  

5. 重命名帐户
–rename user 命令  
mysql rename user andy02 @ % to andy01 @ %  
Query OK, 0 rows affected (0.00 sec)
– 检查  
mysql select user,host,Password from mysql.user where user like andy%
 

二:权限管理

注意:mysql 的权限相对于 oracle 而言,相对简单,而且也没有涉及到角色方面的定义与配置  

–grant 命令语法  

1. 权限种类  
(这里直接查看,root 账户所有的权限)

mysql select * from mysql.user where user= root and host= %
*************************** 1. row ***************************
                  Host: %
                  User: root
              Password:
*2447D497B9A6A15F2776055CB2D1E9F86758182F
           Select_priv: Y
           Insert_priv: Y
           Update_priv: Y
           Delete_priv: Y
           Create_priv: Y
             Drop_priv: Y
           Reload_priv: Y
         Shutdown_priv: Y
          Process_priv: Y
             File_priv: Y
            Grant_priv: Y
       References_priv: Y
            Index_priv: Y
            Alter_priv: Y
          Show_db_priv: Y
            Super_priv: Y
 Create_tmp_table_priv: Y
      Lock_tables_priv: Y
          Execute_priv: Y
       Repl_slave_priv: Y
      Repl_client_priv: Y
      Create_view_priv: Y
        Show_view_priv: Y
   Create_routine_priv: Y
    Alter_routine_priv: Y
      Create_user_priv: Y
            Event_priv: Y
          Trigger_priv: Y
Create_tablespace_priv: Y
              ssl_type: 
            ssl_cipher: 
           x509_issuer: 
          x509_subject: 
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin:
mysql_native_password
 authentication_string: 
      password_expired: N
1 row in set (0.00 sec)

2. 权限存放

MySQL 服务器通过 MySQL 权限表来控制用户对数据库的访问,MySQL 权限表存放在 mysql 数据库里,由 mysql_install_db 脚本初
始化。这些 MySQL 权限表分别 user,db,table_priv,columns_priv 和 host。

user 权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的。
db 权限表:记录各个帐号在各个数据库上的操作权限。
table_priv 权限表:记录数据表级的操作权限。
columns_priv 权限表:记录数据列级的操作权限。
host 权限表:配合 db 权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受 GRANT 和 REVOKE 语句的影响。

3. 权限范围
priv_level: 
    *
  | *.*
  | db_name.*
  | db_name.tbl_name
  | tbl_name
  | db_name.routine_name

4. 授权
mysql grant all privileges on *.* to andy01 @ %    (–WITH
GRANT OPTION 是否传递,默认为不传递)
mysql flush privileges;  

5. 查看当前用户的权限
mysql show grants;

6. 查看指定用户的权限

mysql show grants
for andy01 @ %  

— revoke 收回权限

以上是“MySQL 如何实现用户管理与权限管理”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-26发表,共计2845字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)