mysql 的权限控制
一些简单的例子:
[email protected] : (none) 17:34:45> create user diamonduser identified by 'diamonduser';
Query OK, 0 rows affected (0.01 sec)
[email protected] : (none) 17:36:00> grant all on diamond.* to [email protected]'localhost';
Query OK, 0 rows affected (0.01 sec)
[email protected] : (none) 17:37:04> grant all on diamond.* to [email protected]'%';
Query OK, 0 rows affected (0.01 sec)
flush privileges
GRANT all privileges on *.* to 'notifyuser'@'localhost' identified by 'notifyuser';
GRANT all privileges on *.* to 'notifyuser'@'%' identified by 'notifyuser';
flush privileges;
notifyuser:表示notifyuser用户
@'192.168.172.9': 表示开放的ip
IDENTIFIED BY 'notifyuser': 表示密码是notifyuser
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语句的影响。
查询user表的信息
mysql> select User,Host from user;
| User | Host |
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | yunpeng-duitang |
| root | yunpeng-duitang |
授予MySQL用户权限的实例:
mysql>grant select,insert,update,delete on test.user to [email protected] identified by ‘123456′;
给 本地的用户mql分配可对数据库test的user表进行select,insert,update,delete操作的权限,并设定口令为 123456。若mql用户不存在,则将自动创建此用户. 具体的权限控制在mysql.db表中可以查看到.也可直接对这个表进行更新操作进行权限的修改.
mysql>grant all privileges on test.* to [email protected] identified by ‘123456′;
给本地用户mql分配可对数据库test所有表进行所有操作的权限,并设定口令为123456。
mysql>grant all privileges on *.* to [email protected] identified by ‘123456′;
给本地用户mql分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123456。
mysql>grant all privileges on *.* to [email protected] identified by ‘123456′;
给来自61.127.46.128的用户mql2分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123456。
REVOKE
REVOKE和作用和GRANT相反,语法格式为:
REVOKE privileges ON 数据库名[.表名] FROM user_name
例如:
创建用户Bob,密码为“bob”,但不给他任何权限:
GRANT usage on * to Bob identified by ’bob’;
授予Bob在books数据库中的查询和插入权限:
GRANT select, insert on books.* to Bob;
取消Bob在books数据库中的所有权限:
REVOKE all on books.* from Bob;
注:需要指出的是,REVOKE all...仅仅是回收用户的权限,并不删除用户。在MySQL中,用户信息存放在mysql.User中。MySQL可以通过DROP USER来彻底删除一个用户,其用法为:
DROP USER user_name;
例如,要删除用户Bob,可以用:
DROP USER Bob;
推荐阅读
-
从编译到工具:几种mysql的优化方法_MySQL
-
mysql处理添加外键时提示error 150 问题的解决方法_MySQL
-
Mysql调优之profile的使用方法
-
MySQL 查询某个字段不重复的所有记录_MySQL
-
centos设置apache、mysql及ftp服务开机自动启动的方法
-
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)_PHP教程
-
对MySQL的悲观锁与乐观锁做个小调查
-
python连接MySQL connect函数的参数说明_MySQL
-
MySQL5.7在Windows8.1下忘记密码的问题解决(图文)
-
如何查看mysql的默认存储引擎