mysql.user表是用来记录用户信息的。
=>字段host表示在这个ip范围可以用该用户来访问mysql。localhost表示只有本地可以登录,%表示在所有主机可以登录,42.121.6.%表示ip段在42.121.6的主机可以登录。=>user、password表示登录的用户名和密码。
显示所有用户
select distinct user from mysql.user;查看某个用户的权限
show grants for ‘user2′;show grants ;//查看当前用户的权限
刷新权限
FLUSH PRIVILEGES;注意:在创建完用户后,又刷新下权限才能用新建的用户来登录
创建用户
命令: CREATE USER ’username’@'host’ IDENTIFIED BY ’password’; 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器,应该用PASSWORD()函数来加密密码.
例:用root用户创建用户user1,密码为123,本地可访问
$ mysql -u root -p #以root用户登录
Enter password: #输入root用户密码
mysql>create user ‘user1′@’localhost’ identified byPASSWORD(‘123’); #进入mysql后创建用户
mysql>flush privileges; #刷新权限
mysql>exit;#exit退出mysql
$ mysql - u user1 -p #以刚创建的用户user1登录
Enter password: #输入user1用户密码
mysql> #此时以user1用户登录成功
用户授权
命令:grant privileges on databasename.tablename to ‘user’@'%’ <identified by 'password'>说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等.如果要授予所的权限则使用all;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.
例1.赋用户user2/user2 予select和insert权限
mysql> grant select,insert on test.tab1 to ‘user2′ <identified by ‘user2′>;
例2.授予所有权限
mysql> grant all on test.tab1 to ‘user2 ‘<identified by ‘user2'>;
例3.授予某个数据库中表的所有权限 (使用* 匹配 privileges可写可不写)
mysql> grant all(privileges) on test.*to ‘user2 ‘ identified by ‘user2′;
权限传递:
注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
撤销用户权限
命令: REVOKE privilege ON databasename.tablename FROM ’username’@'host’;说明: privilege, databasename, tablename - 同授权部分.
例子: REVOKE SELECT ON *.* FROM ’pig’@'%’;
注意: 假如你在给用户’pig’@'%’授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO ’pig’@'%’, 则在使用REVOKE SELECT ON *.* FROM ’pig’@'%’;命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO ’pig’@'%’;则REVOKE SELECT ON test.user FROM ’pig’@'%’;命令也不能撤销该用户对test数据库中user表的Select 权限. (表要对应)
设置mysql密码
命令:SET PASSWORD FOR ‘username’@'host’ = PASSWORD(‘newpassword’);如果是当前登陆用户用SET PASSWORD = PASSWORD(“newpassword”);
例1、更改自己的密码
set password=password(’123′);
例2、更改其他用户密码
set password for user2 =password(’234′)
删除用户
命令:drop user ‘username’@'%’例如: drop user ‘user2′