云服务器内容精选

  • 问题描述 普通用户创建schema失败 命令:CREATE SCHEMA my_schema; 报错:ERROR: permission denied for database postgres 普通用户创建表失败 命令:CREATE TABLE my_table(id int PRIMARY KEY,name VARCHAR(30)); ERROR: permission denied for schema public
  • root用户权限说明 RDS for PostgreSQL开放了root用户权限。为了便于用户使用RDS for PostgreSQL并保证在无操作风险的前提下,为root用户在特定场景进行了提权。 各个版本root用户提权情况见下表。 表1 root用户权限说明 版本 是否提权 提权起始版本 pgcore9 否 不涉及 pgcore10 否 不涉及 pgcore11 是 11.11 pgcore12 是 12.6 pgcore13 是 13.2 pgcore14 是 14.4 pgcore15 是 15.4 pgcore16 是 16.2 root提权涉及以下场景: 创建事件触发器 创建包装器 创建逻辑复制-发布 创建逻辑复制-订阅 查询和维护复制源 创建replication用户 创建全文索引模板以及Parser 对系统表执行vacuum 对系统表执行analyze 创建插件 授予用户某个对象的权限
  • 用户管理 DDS上用户的权限都是基于角色管理,通过给用户赋予不同的角色来进行差异化的权限控制。 为了给文档数据库实例提供管理服务,您在创建数据库实例时,文档数据库服务会自动为实例创建admin、monitor和backup账户。如果试图删掉、重命名、修改这些账户的密码和权限,会导致出错。 对于数据库管理员账户rwuser,以及您所创建的账户,允许修改账户的密码。 创建用户 更新用户 删除用户 父主题: 管理数据库权限
  • 解决方法 使用root用户登录数据库,并执行如下授权语句,即可迁移成功。 grant USAGE on schema public to root; grant SELECT,REFERENCES,TRIGGER on all tables in schema public to root; grant EXECUTE on ALL FUNCTIONS IN SCHEMA public to root; 迁移完成后再回收权限。 revoke USAGE schema public from root; revoke SELECT,REFERENCES,TRIGGER on all tables in schema public from root; revoke EXECUTE on ALL FUNCTIONS IN SCHEMA public from root; root用户执行授权命令需要内核版本为支持root提权的版本,支持root提权版本情况见root用户权限说明。
  • GaussDB(for MySQL)提供root账号或super权限吗 GaussDB(for MySQL)提供的管理员账号为root账号,具有去除super、file、shutdown和create tablespace后的最高权限。 大部分的云数据库服务平台,都未给root账号提供super权限。因为一旦用户拥有了super权限,就可以执行很多管理性的命令,比如reset master,set global…,kill,reset slave等,这类操作很有可能导致GaussDB(for MySQL)出现不可预知的异常和故障。这一点是云服务平台和本地搭建MySQL比较大的区别,GaussDB(for MySQL)提供服务化能力,那就需要保证实例的稳定正常运行。 对于客户要求super权限的场景,GaussDB(for MySQL)提供了服务化能力,也可以通过其他手段绕过super权限的限制。 举例如下: 举例1:有些用户喜欢登录数据库执行如下命令来修改参数,这在GaussDB(for MySQL)是被禁止的,您只能通过GaussDB(for MySQL)界面中的参数修改功能来实现。 set global 参数名=参数值; 如果您的脚本中包含set global命令导致super缺失,请删除set global命令,通过console的参数修改。 举例2:有些用户执行如下命令报错,这也是因为没有super权限导致的,只需要去除definer='root’关键字即可。 create definer='root'@'%’ trigger(procedure)… 如果您缺失super权限,可以使用mysqldump导入数据,请参考使用mysqldump迁移MySQL数据导入和导出数据。 父主题: 数据库权限
  • 用户管理 DDS上用户的权限都是基于角色管理,通过给用户赋予不同的角色来进行差异化的权限控制。 为了给文档数据库实例提供管理服务,您在创建数据库实例时,文档数据库服务会自动为实例创建admin、monitor和backup账户。如果试图删掉、重命名、修改这些账户的密码和权限,会导致出错。 对于数据库管理员账户rwuser,以及您所创建的账户,允许修改账户的密码。 创建用户 更新用户 删除用户 父主题: 数据库权限
  • 响应示例 状态码: 200 用户详细信息 { "login" : true, "createrole" : true, "createdb" : true, "systemadmin" : false, "auditadmin" : false, "inherit" : false, "useft" : true, "conn_limit" : -1, "replication" : false, "valid_begin" : 1681971166000, "valid_until" : 1681971166000, "lock" : false}
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 login Boolean 是否可以登录。 createrole Boolean 创建角色权限。 createdb Boolean 创建数据库权限。 systemadmin Boolean 系统管理员。 auditadmin Boolean 审计管理员。 inherit Boolean 继承所在组权限。 useft Boolean 访问外表权限。 conn_limit Integer 连接数限制。 replication Boolean 是否允许流复制。 valid_begin Long 角色生效时间。 valid_until Long 角色过期时间。 lock Boolean 是否锁定。
  • GaussDB(for MySQL)提供root帐号或super权限吗 GaussDB(for MySQL)提供的管理员帐号为root帐号,具有去除super、file、shutdown和create tablespace后的最高权限。 大部分的云数据库服务平台,都未给root帐号提供super权限。因为一旦用户拥有了super权限,就可以执行很多管理性的命令,比如reset master,set global…,kill,reset slave等,这类操作很有可能导致GaussDB(for MySQL)出现不可预知的异常和故障。这一点是云服务平台和本地搭建MySQL比较大的区别,GaussDB(for MySQL)提供服务化能力,那就需要保证实例的稳定正常运行。 对于客户要求super权限的场景,GaussDB(for MySQL)提供了服务化能力,也可以通过其他手段绕过super权限的限制。 举例如下: 举例1:有些用户喜欢登录数据库执行如下命令来修改参数,这在GaussDB(for MySQL)是被禁止的,您只能通过GaussDB(for MySQL)界面中的参数修改功能来实现。 set global 参数名=参数值; 如果您的脚本中包含set global命令导致super缺失,请删除set global命令,通过console的参数修改。 举例2:有些用户执行如下命令报错,这也是因为没有super权限导致的,只需要去除definer='root’关键字即可。 create definer='root'@'%’ trigger(procedure)… 如果您缺失super权限,可以使用mysqldump导入数据,请参考使用mysqldump迁移MySQL数据导入和导出数据。 父主题: 数据库权限