mysql授予列权限_MySQL列权限授予及注意事项

本文详细介绍了如何在MySQL中为特定列授予SELECT、INSERT权限,并通过实例展示了授权过程。用户sam被授予了对test库priv_test表id列的SELECT和INSERT权限,而对其他列的操作则受到限制。当只拥有INSERT权限而无SELECT权限时,用户可以插入数据但无法查看。此外,即使删除表,已授予的权限也不会自动回收,这可能带来安全隐患。
摘要由CSDN通过智能技术生成

对于权限的授予,库和表级别的都比较常见,但具体到表的某个列的访问权限怎么授予呢?建立视图?是否也能够按照独立的列授予insert|delete|update的权限呢?

其实,MySQL对列的受权,是有专门的语法实现的,例如授予test库priv_test表的id列的select权限给sam用户,能够用如下语法实现:

grant select(id) on test.priv_test to sam@‘localhost’;mysql

mysql> select * from priv_test;

+------+------+

| id | id2 |

+------+------+

| 1 | 1 |

+------+------+

1 row in set (0.00 sec)

mysql> grant select(id) on test.priv_test to sam@'localhost';

Query OK, 0 rows affected (0.15 sec)

mysql> show grants for sam@'localhost';

+----------------------------------------------------------------+

| Grants for sam@localhost |

+----------------------------------------------------------------+

| GRANT USAGE ON *.* TO `sam`@`localhost` |

| GRANT SELECT (`id`) ON `test`.`priv_test` TO `sam`@`localhost` |

+----------------------------------------------------------------+

2 rows in set (0.00 sec)

mysql> exit

Bye

[root@linux-base ~]# mysql -usam -psam123

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 64

Server version: 8.0.12 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值