mysql创建用户,并授权

时间:2022-04-30 08:53:53

1.创建用户

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

host分下列3种情况:
'%' - 所有情况都能访问
‘localhost’ - 本机才能访问
’111.222.33.44‘ - 指定 具体ip 才能访问

 新用户默认只能看到test数据库和information_schema数据库。

 

2.修改密码

UPDATE USER  SET password=password('新密码') where user='username';

password('密码')   ,password方法为密码加密

 

 3. 授权

GRANT ALL PRIVILEGES ON databasename.tablename TO 'username'@'host' IDENTIFIED BY 'password';

ALL 可以替换成 select,delete,update,create,drop ,多个权限用逗号分隔

 

 例1: 授权给用户‘user1’在本地机器以外的任意机器上用密码‘123456’访问jstudio数据库的所有权限

           GRANT ALL PRIVILEGES ON jstudio.* TO 'user'@'%' IDENTIFIED BY '123456';

例2:  授权给用户‘user1’在本地机器以外的任意机器上用默认密码访问jstudio数据库中的table1表的所有权限

           GRANT ALL PRIVILEGES ON jstudio.table1 TO 'user'@'%' ;

例3:  授权给用户‘user1’在本地机器上用默认密码访问j所有数据库的所有权限

           GRANT ALL PRIVILEGES ON *.*TO 'user'@'localhost' ;

例4: 授权给用户‘test’在除本地以外的任意机器上用密码123456访问test数据库,拥有select和update的权限

          GRANT select,update on test.* to 'test'@'%' IDENTIFIED BY '123456';

@"%" 表示对所有非本地主机授权,不包括localhost。(ocalhost地址设为127.0.0.1)

 

4.删除用户

DROP user 用户名@'%';

DROP user 用户名@ localhost;

当没有给用户分配数据库的时候需要以下方式进行用户删除:

DELETE FROM user WHERE User='Username' and Host='localhost';

 

5.立即生效
flush privileges;