MySQL如何实现用户管理与权限管理
发布时间:2021-12-25 12:36:59 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要为大家展示了MySQL如何实现用户管理与权限管理,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下MySQL如何实现用户管理与权限管理这篇文章吧。 -- 操作环境 mysql show variables like version; +-----
这篇文章主要为大家展示了“MySQL如何实现用户管理与权限管理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“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='%'G; *************************** 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如何实现用户管理与权限管理”这篇文章的所有内容,感谢各位的阅读! (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |