MySQL中创建用户分配权限

Posted 王小麦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL中创建用户分配权限相关的知识,希望对你有一定的参考价值。

测试环境:CentOS6.8 和 mysql5.5.4

一 需求

在项目开发的过程中可能需要开放自己的数据库给别人,但是出于安全的考虑,不能同时开放自己服务器里的其他数据库。那么可以新建一个用户,赋予该用户特定的数据库权限。

二 实现

1 新建用户

复制代码
// root 用户登陆 MySQL
mysql -uroot -p
Enter password:
// 新建用户
mysql>insert into mysql.user(Host,User,Password) values("localhost","buff",password("buff"));
// 刷新系统权限表
mysql>flush privileges;
复制代码

这样就创建了一个名为:buff,密码为:buff 的用户。

2 登陆测试

mysql>exit
// 用户 buff 登陆 MySQL
mysql -ubuff -p
Enter password:
mysql>

说明新建的用户 buff 登陆成功。

3 用户授权

复制代码
// root 用户登陆 MySQL
mysql -uroot -p
Enter password:
// 为用户 buff 创建一个数据库 bluebuff
mysql>create database bluebuff;
// 授权用户 buff 拥有数据库 bluebuff 的所有权限
mysql>grant all privileges on bluebuff.* to buff@localhost identified by \'buff\';
mysql>flush privileges;
复制代码
1)授权wangli 使用密码123456从%任何主机连接到mysql服务器
grant all privileges  on *.* to \'wangli\'@\'%\' identified by \'123456\' with grant option;
flush privileges;
//授权指定ip登录
GRANT select,insert,update,delete ON *.* TO root@"132.232.132.214" IDENTIFIED BY "wanglijun123";
flush privileges;
2)查看已经授权的用户
mysql> select host,user,authentication_string from mysql.user;
+-----------+---------------+-------------------------------------------+
| host      | user          | authentication_string                     |
+-----------+---------------+-------------------------------------------+
| localhost | root          | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| %         | wangli        | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+---------------+-------------------------------------------+

修改 配置文件:

vim /etc/mysql/mysql.conf.d/mysqld.cnf

注销掉这个#bind-address = 127.0.0.1

然后重启mysql; 必须重启否则不生效!

service mysql restart

 

 

 4 登录测试

// 用户 buff 登陆数据库
mysql -ubuff -p
Enter privileges:
// 显示数据库
mysql>show databases;

结果如下图所示,说明为用户 buff 授权成功

5 修改用户 buff 的密码

复制代码
// root 用户登陆 MySQL
mysql -uroot -p
Enter password:
// 修改用户 buff 的密码
mysql>update table mysql.user set password=password(\'buffer\') where User=\'buff\' and Host=\'localhost\';
mysql>flush privileges;
复制代码

6 删除用户

复制代码
// root 用户登陆 MySQL
mysql -uroot -p
Enter password:
// 删除用户 buff
mysql>delete from mysql.user where User = \'buff\' and Host = \'localhost\';
mysql>flush privileges;
复制代码

7 删除数据库

mysql>drop database bluebuff;

 

忘记密码可以修改

配置文件下:

vim /etc/mysql/mysql.conf.d/mysqld.cnf 的 skip-grant-tables 参数加上;然后重启就可以不用密码登录了。

 


以上是关于MySQL中创建用户分配权限的主要内容,如果未能解决你的问题,请参考以下文章

各位高手,请问,在oracle中创建的用户都分配哪些权限?一般分配哪些权限?

如何在MySQL中创建数据库及添加用户并授权用户

如何在 MySQL/MariaDB 中创建与 root 具有相同权限的用户? [关闭]

MySQL中创建用户创建数据库表并付给用户权限

在 PostgreSQL 中创建/删除索引的用户权限

在wampserver中创建数据库无权限怎么办