时间:2022-11-20 10:14:14 | 栏目:Mysql | 点击:次
mysql默认安装的时候是有一个root用户,这个用户有最高权限,如果要开放数据库里面的数据给别人使用的话,一般是不会开放root用户给别人的,正常会创建新的用户给别人使用,这个用户的权限就可以自己进行控制了
命令
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
参数说明:
(1)username:自己想要创建的用户名
(2)host:可以连接到这个数据的主机地址,如果想要任意主机都可以连接到这台服务器的话,可以使用通配符%
(3)password:用户登录的密码
创建用户:zs,密码:123,主机:196.168.64.12
CREATE USER 'zs'@'196.168.64.12' IDENTIFIED BY '123';
创建用户:zs,密码:123,任意主机都可以登录该数据库
CREATE USER 'zs'@'%' IDENTIFIED BY '123';
注意:如果要设置一个用户可以有多个ip进行登录访问的话,只需要重复案例(1)的做法即可,账号和密码都一样,主机ip不同即可
创建好用户后,如果要修改用户密码的话可以进行下面的操作
命令
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
例如
SET PASSWORD FOR 'zs'@'196.168.64.12' = PASSWORD("123456");
如果是当前登录用户可以使用下面的命令
SET PASSWORD = PASSWORD("123456");
如果想删除创建的用户可以使用下面的命令
drop user '用户名'@'ip';
例如:
drop user 'zs'@'192.168.92.14';
命令
GRANT privileges ON databasename.tablename TO 'username'@'host'
注意:
(1)privileges:用户的操作权限,如SELECT,INSERT,UPDATE,DELETE等,如果要授予所的权限则使用ALL
(2)databasename:数据库名
(3)tablename:数据库表,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
(4)username:要授权的用户
(5)host:ip
例子
给用户zs,授予数据库test1里面的用户表user增删改查的权限
GRANT ALL ON test1.user TO 'ZS'@'192.169.12.12';
给用户zs,授予数据库test1里面的用户表user查改的权限
GRANT SELECT,UPDATE ON test1.user TO 'ZS'@'192.169.12.12';
给用户zs,授予数据库里面所有表的所有权限
GRANT ALL ON *.* TO 'ZS'@'192.169.12.12';
命令
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
注意:
(1)privileges:用户的操作权限,如SELECT,INSERT,UPDATE,DELETE等,如果要授予所的权限则使用ALL
(2)databasename:数据库名
(3)tablename:数据库表,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
(4)username:要授权的用户
(5)host:ip
例子
给用户zs,授予数据库test1里面的用户表user查改的权限后,想撤销该权限
REVOKE SELECT,UPDATE ON test1.user TO 'ZS'@'192.169.12.12';
查看数据库中的所有用户
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
查看数据库中具体某个用户的权限
show grants for 'cactiuser'@'%';
设置与更改用户密码
SET PASSWORD FOR ‘username’@’host’ = PASSWORD(‘newpassword’);
如果是当前登陆用户用:
SET PASSWORD = PASSWORD(“newpassword”);
mysql> SET PASSWORD FOR 'finley'@'%' = PASSWORD("123456");