暂无图片
postgresql 权限问题
我来答
分享
Martin
2024-03-12
postgresql 权限问题

grant create 权限是否包含 create table,drop table,create index,alter table tb1 add c1 int; 四个权限?


我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
雪狼sunny

在 PostgreSQL 数据库中,授予 CREATE 权限并不包含 CREATE TABLE、DROP TABLE、CREATE INDEX 和 ALTER TABLE 类型的权限。

CREATE 权限用于授权用户在指定模式下创建对象。然而,它并不涵盖具体的表、索引、表的删除或修改的操作。

如果你想授予用户创建表、删除表、创建索引和修改表结构的权限,你需要分别授予相应的权限。例如:

  • CREATE TABLE 权限用于创建表。
  • DROP TABLE 权限用于删除表。
  • CREATE INDEX 权限用于创建索引。
  • ALTER TABLE 权限用于修改表的结构。

因此,CREATE 权限本身并不包含这些具体的表、索引、表结构修改的权限。你需要分别授予这些权限给用户或角色。

暂无图片 评论
暂无图片 有用 2
Martin
题主
2024-03-12
怎么授权 alter table 权限呢?
雪狼sunny

要让 PostgreSQL 用户具有 ALTER 权限,可以使用 GRANT 语句来授予权限。

以下是授予用户 ALTER 权限的示例:

sql

GRANT ALTER ON TABLE <table_name> TO <username>;

在上述示例中,将 <table_name> 替换为实际的表名,<username> 替换为要授予权限的用户名。

如果你希望用户在特定模式下具有 ALTER 权限,可以使用以下语法:

sql

GRANT ALTER ON TABLE <schema_name>.<table_name> TO <username>;

将 <schema_name> 替换为模式名称,<table_name> 替换为表名,<username> 替换为要授予权限的用户名。

请注意,只有拥有足够权限的用户才能执行 GRANT 语句。通常,只有具有超级用户权限的角色(如 postgres)或具有适当权限的角色才能授予其他用户权限。

暂无图片 评论
暂无图片 有用 1
lianR

"grant  create"  权限通常只包含创建对象(如表、索引、视图等)的权限,不包含删除(drop)或修改(alter)对象的权限。所以,它包含"create  table"和"create  index"权限,但不包含"drop  table"和"alter  table"权限。如果你想让用户有删除或修改表的权限,你需要额外授予"drop"和"alter"权限。

暂无图片 评论
暂无图片 有用 0
Martin
题主
2024-03-14
pg没有额外的 drop权限啊,姐姐,别误导我
lianR
答主
2024-03-14
在PostgreSQL中,是否有drop权限取决于用户的角色设置。如果用户被赋予了SUPERUSER权限或者CREATEDB权限,那么他们就有权限删除数据库
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏