首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ALTER SCHEMA NAME是否会影响对Redshift中模式的权限授予

ALTER SCHEMA NAME是否会影响对Redshift中模式的权限授予
EN

Stack Overflow用户
提问于 2020-05-14 00:34:39
回答 1查看 415关注 0票数 0

如果我更新一个架构,该架构已经设置了一系列权限来访问其他具有不同访问权限的架构,更新名称会取消这些授权,还是会保留这些授权?Redshift在他们的文档中列出了以下内容作为run an alter schema的语法,但如果授权会受到影响,则不会写入:

代码语言:javascript
运行
复制
ALTER SCHEMA schema_name
{
RENAME TO new_name |
OWNER TO new_owner |
QUOTA { quota [MB | GB | TB] | UNLIMITED }
}

我的假设是现有的拨款不会有变化,但我想在变化生效之前确认一下。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-14 10:43:02

你是对的。更改名称不会更改基础权限。您可以在一个新的/ dev集群中亲自测试这一点,方法是确保修改表名前后的权限返回相同的权限。但是,更改所有者将影响所有者级别的权限。

代码语言:javascript
运行
复制
CREATE SCHEMA dev;

CREATE TABLE dev.test_table AS (SELECT 1 AS t);

GRANT USAGE ON SCHEMA dev TO “username_here”;

GRANT SELECT ON TABLE dev.test_table TO “username_here”;

SELECT u.usename,
   s.schemaname,
   s.tablename,
   has_table_privilege(u.usename, s.schemaname || ‘.’ || s.tablename, ‘select’) AS user_has_table_select,
   has_schema_privilege(u.usename,s.schemaname,‘create’) AS user_has_schema_create,
   has_schema_privilege(u.usename,s.schemaname,‘usage’) AS user_has_schema_usage
FROM pg_user u
     CROSS JOIN
     (SELECT schemaname, tablename FROM pg_tables) s
WHERE s.schemaname in (‘dev’, ‘uat’)

ALTER SCHEMA dev rename TO uat;

SELECT u.usename,
   s.schemaname,
   s.tablename,
   has_table_privilege(u.usename, s.schemaname || ‘.’ || s.tablename, ‘select’) AS user_has_table_select,
   has_schema_privilege(u.usename,s.schemaname,‘create’) AS user_has_schema_create,
   has_schema_privilege(u.usename,s.schemaname,‘usage’) AS user_has_schema_usage
FROM pg_user u
     CROSS JOIN
     (SELECT schemaname, tablename FROM pg_tables) s
WHERE s.schemaname in (‘dev’, ‘uat’)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61780002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档