您的位置:首页 > 数据库 > MySQL

MySQL用户创建、授权和修改密码

2017-03-08 12:49 531 查看
1.创建用户
mysql> CREATE USER 'myuser'@'host' IDENTIFIED BY 'mypasswd';

说明:

myuser:创建的用户名

host:指定该用户在哪个主机上可以登陆。如果是本地用户可用localhost,如果允许该用户从任意远程主机登陆,可以使用通配符%。

mypasswd:用户的登录密码,允许密码为空,如果为空则该用户可以不需要密码登陆服务器。

举例:

mysql> CREATE USER 'frank'@'localhost' IDENTIFIED BY '1q2w3e';

mysql> CREATE USER 'frank'@'192.168.1.100' IDENDIFIED BY '1q2w3e';

mysql> CREATE USER 'frank'@'%' IDENTIFIED BY '1q2w3e';

2.删除用户

mysql> DROP USER 'myuser'@'host';

3.授权用户从远程访问数据库

如果手里的帐号不允许从远程登陆,只能在localhost登录,现在想要授权该用户远程访问mysql。可以通过本地以root登录mysql以后,进行修改。更改数据库“mysql"里的”user"表里的“host”项,将“localhost”改称“%”。

1)改表法:

# mysql -uroot

mysql> use mysql;

mysql> update user set host = '%' where user = 'root';

mysql> select host, user from user;

mysql> flush privileges; 
2)授权法:

# mysql -uroot

mysql> GRANT ALL ON *.* TO 'frank'@'%' IDENTIFIED BY '1q2w3e';

mysql> use mysql;

mysql> select host, user from user;

mysql> flush privileges; 

如果想指定用户frank从ip为192.168.1.100的主机连接到mysql服务器,并使用1q2w3e作为密码,授予所有权限ALL:

mysql> GRANT ALL ON *.* TO 'frank'@'192.168.1.100' IDENTIFIED BY '1q2w3e';

mysql> flush privileges; 

如果想指定用户frank从ip为192.168.1.100的主机连接到mysql服务器,并使用1q2w3e作为密码:

mysql> GRANT ALL ON *.* TO 'frank'@'192.168.1.100' IDENTIFIED BY '1q2w3e';

mysql> flush privileges; 

4.用户授权

mysql> GRANT privileges ON dbName.tableName TO 'myuser'@'host';

mysql> flush privileges; 

说明:

privileges:用户的操作权限,如:SELECT, INSERT, UPDATE 等。如果要授予所的权限则使用ALL。

dbName.tableName:数据库名.表名。如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,例如*.*。

'myuser'@'host':授权用户myuser并指定host,授权本地登录host为localhost,授权用户远程登录host可以指定IP,或者使用通配符%,允许任意远程主机登录。

举例:

mysql> GRANT SELECT, INSERT ON testdb.table01 TO 'frank'@'%';

mysql> GRANT ALL ON *.* TO 'frank'@'%';

mysql> flush privileges; 

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令: 

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION; 

5.撤销用户权限

mysql> REVOKE SELECT ON dbName.tableName FROM 'myuser'@'host'; //撤销SELECT权限

mysql> REVOKE SELECT ON dbName.tableName FROM 'myuser'@'%'; //撤销SELECT权限

mysql> flush privileges; 

6.查看用户权限

mysql> SHOW GRANTS FOR 'myuser'@'%';

mysql> SHOW GRANTS FOR 'myuser'@'localhost';

查看自己的权限

mysql> SHOW GRANTS;

权限有很多种:

ALL PRIVILEGES 代表所有权限。

USAGE 官方解释为‘无权限’的同义词。经过测试,无权限也能进行基本的读写操作。

7.设置与更改用户密码

修改密码有多种方法

# mysql -uroot

如果是设置当前登陆用户自己的密码用:

mysql> SET PASSWORD = PASSWORD("mypasswd"); //该方式可以设置空密码

mysql> flush privileges; 

设置其他用户的密码用:

mysql> SET PASSWORD FOR 'myuser'@'host' = PASSWORD('mypasswd'); //该方式可以设置空密码

mysql> flush privileges; 

修改frank远程访问密码举例:

mysql> SET PASSWORD FOR 'frank'@'%' = PASSWORD("1q2w3e");  //该方式可以设置空密码

mysql> flush privileges; 

通过grant设置密码

mysql> GRANT ALL on *.* to 'myuser'@'%' identified by "mypassword"; 

mysql> flush privileges; 

设置root本地登录密码举例:

# mysql -uroot

mysql> GRANT ALL on *.* to 'root'@'localhost' identified by "1q2w3e"; //该方式不能设置空密码

mysql> flush privileges; 

也可以在shell环境下用mysqladmin程序来设置root密码(如果原来root没有设置密码)

# mysqladmin -u root password "mypasswd"

# mysqladmin -u root password "mypasswd"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: