mysql用户以及用户授权

1.1创建mysql用户

mysql> create user test identified by 'test';

1.2为用户授权后面不加identified。

grant select on test.* to test@localhost;

1.3查看MYSQL数据库中所有用户
select distinct concat('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

or

select user,host  FROM mysql.user;

删除用户:

mysql>Delete FROM user Where User='test' and Host='localhost';

mysql>flush privileges;

mysql>drop database testDB; //删除用户的数据库

删除账户及权限:>drop user 用户名@'%';

        >drop user 用户名@ localhost;

为用户授权:

授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";

  • 授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限):

   mysql>grant all privileges on testDB.* to test@localhost identified by '1234';

  mysql>flush privileges;//刷新系统权限表

撤销某用户的某些权限

revoke select on test.* from test;


2.查看数据库中具体某个用户的权限
mysql>show grants for 'abcuser'@'localhost';

格式:show grants for '用户名'@'登录主机';

or

mysql>show grants for abcuser@'localhost';  // 用户名的引号可以省略

如果列表显示用户的权限如下:

mysql >select * from mysql.user where user='cactiuser' \G


3.查看user表结构 需要具体的项可结合表结构来查询
mysql> desc mysql.user;

显示数据表结构

mysql>describe 表名;


4.例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";

但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。

例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";

如果你不想test2有密码,可以再打一个命令将密码消掉。

grant select,insert,update,delete on mydb.* to test2@localhost identified by "";


5. 修改mysql的root密码

第一种︰使用 set password 語法

mysq>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

第二种 :

用UPDATE直接编辑user表

  mysql -u root

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

  mysql> FLUSH PRIVILEGES;

在丢失root密码的时候,可以这样

  mysqld_safe --skip-grant-tables&

  mysql -u root mysql

  mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';

  mysql> FLUSH PRIVILEGES;

猜你喜欢

转载自www.cnblogs.com/knight-zhou/p/12067523.html