Mysql权限简单管理
- 1,普通用户的创建
- 2,普通用户的删除
- 3,密码修改
- 3,用户对数据库的操作权限
- 4,关于允许远程登录问题,
1,普通用户的创建
1,格式 create user 'username'@'hostname' identified by 'password';
语义:创建一个名字为username,主机名(hostname),密码为password 的用户
2,格式 grant [privilieges] on database.table to 'username'@'hostname' identified by 'password';
语义:其中privilieges表示要赋予用户的操作哪个database的table的CURD的权限
所有的权限使用 all
,所有库,表使用*.*
来表示,其中hostname 可以用%,表示任意客户端
3,使用insert 语句在mysql.user 表中插入数据,但是这种鉴于有的不同版本对于user表的字段名定义不一样。
4,我们创建的用户可以用 show User,Host from mysql.user;
来罗列出来。MySQL中user表就定义了用户的各种权限字段,如下图:
2,普通用户的删除
1,格式DROP USER 'username'@'localhost';
2,使用delete,直接在mysql.user 删除对应用户,这里说一下,mysql 的身份验证,服务器只有在mysql.user中Host
,User
,Password
(每个版本可能不一样) 与客户端的用户名,密码,以及IP匹配的才会链接到服务器,否则是不会链接的
3,密码修改
1,update mysql.user set Password=Password("password") where User = 'userName' and 'Host'='hostname';
这里可能会报错,还是那个原因,字段名不一样。
2,set password=password("rootPsd");
这是MySQL内置的语句
如果你是使用普通用户登录,这句话就是修改普通用的密码
3,set password for 'username'@'hostname' = password('usernpwd');
root用户修改普通用户的密码
4,grant usage on *.* to 'notrootUsername'@'hostname' ideantified by 'notrootUserPwd';
3,用户对数据库的操作权限
1,grant all on *.* to 'username'@'hostname' identified by 'pwd';
授权all
是所有操作(CRUD) 第一个 *
表示任意数据库,第二个*
表示数据库下的任意表,还可以指定表中的指定列
2,revoke all on *.* from 'username'@'hostname';
收回权限
4,关于允许远程登录问题,
很多人都说修改my.cnf,或者在该文件中添加某个命令。怎么说呢,可能人家这样做是对的!,由于版本的不同,配置文件稍有不同,但是我们应该自己找一下,不要盲目去看别人怎么做,
一般MySQL的核心配置不在这里,但是这里面包含了其他配置文件的路径,
主要配置在第二个路径下, vim tc/mysql/mysql.conf.d/mysqld.cnf
这里bind-address = 0.0.0.0 我已近修改了,原本是127.0.0.1并把注释去掉就可以了