开发者社区 问答 正文

老师给了OceanBase这个权限, 现在use db后执行show key 命令都不行了?

问题1:grant SHOW DATABASES on . to user_name; 老师给了OceanBase这个权限, 现在use db后执行show key 命令都不行了? ee1bce36b1c13e9542f611e6d677a6e9.png grant all on . 这样授权就可以,可以直接执行SHOW KEY命令, 但SHOW FULL TABLES,SHOW FULL COLUMNS 这种命令就不需要所有db权限 问题2:但只给某一个db的权限,登录数据库后不能直接执行SHOW KEY命令,需要使用use db命令切换db后才能执行

展开
收起
真的很搞笑 2023-06-03 11:12:03 157 分享 版权
来自: OceanBase
2 条回答
写回答
取消 提交回答
  • 问题1: 给予用户 SHOW DATABASES 权限的语句不会自动授予权限查看和使用某个特定数据库的信息。如果您想授予用户查看和使用特定数据库的权限,需要使用类似于 GRANT ALL ON db_name.* TO user_name; 的语句来授权。

    问题2: 如果您只想给用户授权特定数据库的权限,可以使用类似于 GRANT ALL ON db_name.* TO user_name; 的语句来授权。这样用户就只会具备操作特定数据库的权限,而不能够在其他数据库中执行类似 SHOW KEY 这样的命令,需要先使用 use db_name;命令切换到特定的数据库才能执行相关命令。如果您想提供对多个数据库进行的类似操作的访问权限,您可以授权 .* 来代表所有数据库,这样就可以在任何数据库中执行相关命令了。需要注意的是,这种情况下需要慎重考虑安全性问题并谨慎授权。

    需要注意的是,授权的语句应该谨慎授予,只授权必要的权限,确保保护数据库的安全性和完整性。

    2023-06-03 11:52:43
    赞同 展开评论
  • 回答1:all是所有权限 如果想控制权限 可以按需增加权限的。ob权限分类可以参看这个文档 https://www.oceanbase.com/docs/community-observer-cn-10000000000901690 回答2:增加select权限到所需的库下即可。,此回答整理自钉群“[社区]技术答疑群OceanBase”

    2023-06-03 11:47:13
    赞同 展开评论