MySQL权限grant使用

1.创建数据库

 mysql -h localhost -u root -p --登录数据库
 show databases; --显示当前存在的数据库
 use tym; -- 使用数据库
 --创建test_one数据库
 mysql> create table test_one (
    -> id int,
    -> name varchar(20)
    -> );

2.查看用户

 -- 查看数据库中所有用户
 mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
+-------------------------------+
| query                         |
+-------------------------------+
| User:'tym'@'%';               |
| User:'mysql.sys'@'localhost'; |
| User:'root'@'localhost';      |
+-------------------------------+
 -- 当前用户是管理员账户
select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+

3.增加用户

create user 'tym111'@'localhost' identified by '123pwd';
--默认是usage权限,该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。
mysql> grants for tym111@localhost;
+--------------------------------------------+
| Grants for tym111@localhost                |
+--------------------------------------------+
| GRANT USAGE ON *.* TO 'tym111'@'localhost' |
+--------------------------------------------+
flush privileges; --如果修改完权限,记得刷新一下,生效条件如下

3.1

• 执行Grant,revoke,setSassword,renameuser命令修改权限之后,MySQL会自动将修改后的权限信息同步加载到   系统内存中
• 如果执行insert/update/delete操作上述的系统权限表之后,则必须再执行刷 新权限命令才能同步到系统内中,刷新权限命令包括:flush privileges/mysqladmin flush-privileges/mysqladmin reload
• 如果是修改tables和columns级别的权限,则客户端的下次操作新权限就会生 效
• 如果是修改database级别的权限,则新权限在客户端执行use database命令后 生效
• 如果是修改global级别的权限,则需要重新创建连接新权限才能生效
• skip-grant-tables可以跳过所有系统权限表而允许所有用户登录,只在特殊 情况下暂时使用

4.操作

--登录新用户
PS C:\WINDOWS\system32> mysql -u tym111 -p
Enter password: ******
--默认usage权限,只能登录,其余的会报错
mysql> use tym
ERROR 1044 (42000): Access denied for user 'tym111'@'localhost' to database 'tym'
--重新回到root用户赋予权限,记得刷新。
mysql> grant select, delete on tym.test_one to tym111@localhost;
mysql>flush privileges;
--这时候tym111用户权限
mysql> show grants for tym111@localhost;
+------------------------------------------------------------------+
| Grants for tym111@localhost                                      |
+------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'tym111'@'localhost'                       |
| GRANT SELECT, DELETE ON `tym`.`test_one` TO 'tym111'@'localhost' |
+------------------------------------------------------------------+
--先试试查询权限外的表内容
mysql> use tym
Database changed
mysql> select * from students;
ERROR 1142 (42000): SELECT command denied to user 'tym111'@'localhost' for table 'students'
--再删除test_one表中的内容
mysql> select * from test_one;
+------+-------+
| id   | name  |
+------+-------+
|    3 | three |
|    1 | one   |
|    2 | two   |
|    4 | four  |
+------+-------+
--权限生效

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值