MysQL 权限系统
MySQL权限系统
- 当你连接MySql服务器时,你的身份有你从哪儿连接的主机和你指定的用户名来决定
- 服务器在mysql数据库的授权表中保存权限信息(即在mysql数据库中),当mysql服务器启动时讲这些表的内容读入内存
- 如果更改了权限,必须刷新授权表或重启mysql服务器才会生效
初始安全设置
- mysql安全设置脚本
mysql_secure_installation
- 查看账号信息
select host,user,password from mysql.user
说明: - 对user表进行操作,需要重启mysql服务器或执行
flush privileges
重新将授权表读入内存
##设置密码
* 设置密码
update mysql.user set password=password('admin888') where user='root'
* 重启读取授权表
flush privileges
忘记ROOT密码
- 修改mysql配置文件
vim /etc/my.cnf
- 在
[mysqld]
的段中加上skip-grant-tables
service mysqld restart
update mysql.user set password=password('admin888') where user='root';
- 删除
my.cnf
中skip-grant-tables
这一行 service mysqld restart
添加账号与设置密码
- 添加账号拥有所有权限
grant all on *.* to 'testuser'@'localhost' identified by 'admin888';
all
所有权限on *.*
所有库中的所有表'testuer'@'localhost'
通过localhost登录的testuser用户identified by
设置密码 - 添加用户后执行
flush privileges;
#重新加载授权表
##删除用户账户
* 删除匿名用户
delete from mysql.user where user="";
* 重新加载授权表
flush privileges
- 删除某个账号
delete from mysql.user where user='testuser1';
- 重新加载授权表
flush privileges;
#删除账号必须以ROOT用户操作
- 重新加载授权表
##为数据库开发人员设置权限
* 设置对表的创建,删除,修改权限
grant create,alter,drop on databaes1.table1 to 'user1'@'%'