控制台创建的账号授权后默认是可以管理整个数据库,如果只想要账号管理数据库中的某个表、视图、字段,可以通过SQL命令进行授权。
前提条件
创建高权限账号。
操作步骤
- 通过客户端、命令行连接RDS。
- 通过以下命令创建新用户并授权管理数据库下的表、视图、字段:说明 此账号在控制台上无法查看到所属数据库。
- 创建新用户并授权管理数据库中的表
CREATE USER ``@`%`IDENTIFIED BY '';GRANT PROCESS, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ''@'%';GRANT ALL PRIVILEGES ON ``.`` TO ''@'%';GRANT SELECT ON `mysql`.`help_topic` TO ''@'%';GRANT SELECT ON `mysql`.`func` TO ''@'%';GRANT SELECT ON `mysql`.`time_zone` TO ''@'%';GRANT SELECT ON `mysql`.`slow_log` TO ''@'%';GRANT SELECT ON `mysql`.`time_zone_transition` TO ''@'%';GRANT SELECT ON `mysql`.`proc` TO ''@'%';GRANT SELECT ON `mysql`.`help_category` TO ''@'%';GRANT SELECT ON `mysql`.`help_relation` TO ''@'%';GRANT SELECT ON `mysql`.`help_keyword` TO ''@'%';GRANT SELECT ON `mysql`.`general_log` TO ''@'%';GRANT SELECT ON `mysql`.`time_zone_leap_second` TO ''@'%';GRANT SELECT ON `mysql`.`time_zone_transition_type` TO ''@'%';GRANT SELECT ON `mysql`.`time_zone_name` TO ''@'%';
示例
创建新用户test01并授权管理数据库rds001中的表test100。
CREATE USER `test01`@`%`IDENTIFIED BY 'passwd'; GRANT PROCESS, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'test01'@'%'; GRANT ALL PRIVILEGES ON `rds001`.`test100` TO 'test01'@'%'; GRANT SELECT ON `mysql`.`help_topic` TO 'test01'@'%'; GRANT SELECT ON `mysql`.`func` TO 'test01'@'%'; GRANT SELECT ON `mysql`.`time_zone` TO 'test01'@'%'; GRANT SELECT ON `mysql`.`slow_log` TO 'test01'@'%'; GRANT SELECT ON `mysql`.`time_zone_transition` TO 'test01'@'%'; GRANT SELECT ON `mysql`.`proc` TO 'test01'@'%'; GRANT SELECT ON `mysql`.`help_category` TO 'test01'@'%'; GRANT SELECT ON `mysql`.`help_relation` TO 'test01'@'%'; GRANT SELECT ON `mysql`.`help_keyword` TO 'test01'@'%'; GRANT SELECT ON `mysql`.`general_log` TO 'test01'@'%'; GRANT SELECT ON `mysql`.`time_zone_leap_second` TO 'test01'@'%'; GRANT SELECT ON `mysql`.`time_zone_transition_type` TO 'test01'@'%'; GRANT SELECT ON `mysql`.`time_zone_name` TO 'test01'@'%';
说明 如果将命令第三行的test100更改为*,就和通过控制台创建的账号一样了,也可以在控制台看见此账号的所属数据库。
- 授权查询数据库中的视图
grant select on . to ;
示例
授权用户test01查询数据库rds001的视图view_test1。
grant select on rds001.view_test1 to test01;
- 授权更新或查询表中的字段
grant update () on table to ; -----授权更新表中字段 grant select () on table to ; -----授权查询表中字段
示例
授权用户test01更新表testtable的字段testid。
grant update (testid) on table testtable to test01;
除了通过SQL命令,也可以在DMS上进行修改。详情请参见MySQL数据库账号权限管理。
- 创建新用户并授权管理数据库中的表
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/156229.html