新手学习 OceanBase,在 sys 租户下创建新用户,执行 create user 语句,提示权限不足。想问问:
- sys 租户默认什么账号才能新建用户?
- 创建用户后,授予建表、查询权限的标准 SQL 怎么写?
新手学习 OceanBase,在 sys 租户下创建新用户,执行 create user 语句,提示权限不足。想问问:
你用什么用户登录的sys租户。。?sys租户的创建用户语句跟基本跟mysql一致,看看官网文档即可
在 OceanBase 中,创建新用户需要具备 CREATE USER 权限。根据文档信息,sys 租户下的默认用户中,只有集群管理员(通常是 root@sys)和租户管理员拥有 CREATE USER 权限。因此,如果你在 sys 租户下创建新用户时遇到权限不足的错误,可能是因为你使用的用户没有 CREATE USER 权限。
解决方法:
sys 租户下的 root 用户,或者已经授予了 CREATE USER 权限的其他用户。root 用户,并且没有 CREATE USER 权限,你需要联系具有相应权限的管理员,请求他们为你创建用户或授予你 CREATE USER 权限。一旦用户被创建,你可以通过 GRANT 语句来为其授予建表、查询等权限。以下是一些示例 SQL 语句:
授予建表权限:
GRANT CREATE TABLE ON database_name.* TO 'username'@'%';
授予查询权限:
GRANT SELECT ON database_name.table_name TO 'username'@'%';
授予所有数据库的所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
授予特定数据库的所有权限:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%';
创建用户并直接授权:
你也可以在创建用户的同时授予权限,例如:
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%';
注意事项:
GRANT 语句时,确保当前用户具有足够的权限来授予这些权限。sql_mode='no_auto_create_user',且语句中没有 IDENTIFIED BY 指定密码时,不可以直接创建用户。更多关于权限管理的信息,请参考 MySQL 模式下的权限分类。
希望这些信息对你有所帮助!
详情请参考: