mysql> grant all on *.* to root@'远程管理的客户端ip'> 这样就可以在你指定的管理机上登陆mysql服务器了 用户授权
grant 权限列表 on 库名.表名 to "用户名"@"客户端地址"> 客户端地址可以是指定ip
指定网段主机位用%表示 192.168.4.%
所以ip用%
权限 all 所有权限 库和表可以用*来表示所有的意思
查看数据库服务器上已经有的授权的用户及权限
select user,host from mysql.user;
show garts for "用户名"@“客户端地址”;
显示当前登陆的用户
select user();
显示当前主机名
select @@hostname;
查看登陆用户的访问权限
show grants; 权限撤销
revoke 权限列表 on 库名.表名 from "用户名"@"客户端地址"
删除授权用户
drop user "用户名"@"客户端地址"; 删除授权用户后该用户的权限也会全部被删除
修改授权用户的登陆密码
set password for "用户名"@"客户端地址"=password("新密码")
授权用户重置自己的用户密码
set password=password("新密码");
如果说你要给某一个库据具有所有权限包含可以授权的权限
你需要添加该用户在mysql数据库中的所有表具有插入权限 (如果没有mysql的插入权限,授予该用户的with grant option 也无法给其他用户授权) 并且该用户能给其他用户授权的权限不能大于本身具有的权限 恢复数据库管理员本机管理密码(忘记的root用户的管理密码的请况下在mysql服务器操作系统上)
1.修改配置文件 /etc/my.cnf 文件
在[mysqld] 下面
添加跳过授权表的参数(如果有验证策略的参数设置需要先注释已经添加过的验证策略参数)skip-grant-tables
2.重启mysql 服务
3.无密码进入mysql
4.修改mysql root用户密码
update mysql.user set authentication_string=password("新密码") where user=“root” host=“localhost”;
5.退出,修改回原来的mysql配置
6.重启mysqld服务
下面提供一些示例
1、修改数据库管理员从本机登录的密码为123456
数据库管理员使用新密码从本机连接数据库服务器
mysqladmin -uroot -p654321 password123456;
2、查看当前登陆数据库服务器的用户是谁?
mysql> select user();
3、查看当前登陆数据库服务器用户的权限?
mysql> show grants for root@localhost;
4、查看当前数据库服务器有哪些授权用户?
mysql> select user,host from mysql.user;
5、授权管理员用户可以在网络中的192.168.4.254主机登录,对所有库和表有完全权限且有授权的权限;登陆密码abc123
mysql> grant all on *.* to root@'192.168.4.254'> 6、不允许数据库管理员在数据库服务器本机登录。(在做此操作之前一定要添加一个可以远程管理的用户,否则你就进不了mysql服务器了)
drop user root@"localhost";
7、授权userweb用户可以从网络中的任意主机访问数据库服务器,对db3库下的user表有查看、更新name字段和age字段的权限 , 登录密码userweb888。
grant select,update(name,age) on db3.user to userweb@'%'> 8、验证以上授权是否成功
#mysql -h192.168.4.51 -uuserweb -puserweb888
mysql> select * from db3.user;
mysql> update db3.user set name="xx",age=20 where name="ss";
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> delete from db3.user where name="xx";
ERROR 1142 (42000): DELETE command denied to user 'userweb'@'192.168.4.254' for table 'user'
9、userweb修改自己的登陆密码为123456,并验证能否使用新密码登陆
mysql> set password=password("123456");
Query OK, 0 rows affected, 1 warning (0.00 sec)
#mysql -h192.168.4.51 -uuserweb -p123456
10、 数据库管理员修改授权用户userweb的登录密码为654321,让授权用户userweb 使用新密码登陆数据库服务器。
set password for userweb@"%"=password("654321");
11、撤销授权用户userweb 的所有授权并 使其不再能使用此用户连接数据库服务器。
mysql> drop user user@"%";
12、授权webadmin用户可以从网络中的所有主机登录,对bbsdb库拥有完全权限,且有授权权限,登录密码为 123456
mysql> grant all on bbsdb.* to webadmin@'%'> Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> grant insert on mysql.* to webadmin@"%" ;
Query OK, 0 rows affected (0.00 sec)
13、在客户端使用授权用户webadmin登录,把自己的权限授权给userone用户 , 登录密码是 123456
# mysql -h192.168.4.51 -uwebadmin -p123456
mysql> grant all on bbsdb.* to userone@"%"> 15、撤销webadmin用户的授权权限。mysql> revoke grant option on bbsdb.* from webadmin@"%";
Query OK, 0 rows affected (0.00 sec)