暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL中Create Role相比Create User缺少的权限是:____

原创 小伙 2025-05-09
62

PostgreSQL中Create Role相比Create User缺少的权限是:____

A

superuser

B

login

C

sys

D

dba

在 PostgreSQL 中,CREATE ROLE 相比 CREATE USER 缺少的默认权限是 LOGIN。以下为详细解析:


核心区别

  1. CREATE USER
    本质是 CREATE ROLE ... WITH LOGIN 的语法糖,默认包含 LOGIN 权限,即允许用户登录数据库。例如:

    CREATE USER alice WITH PASSWORD 'secret';  -- 自动包含 LOGIN
    
  2. CREATE ROLE
    默认不包含 LOGIN 权限,创建的是一种“角色”(通常用于权限分组),需手动添加登录权限:

    CREATE ROLE admin;  -- 默认不可登录
    ALTER ROLE admin WITH LOGIN;  -- 需显式赋予 LOGIN
    

选项排除分析
• A. superuser

并非默认差异,两者均可通过 SUPERUSER 选项显式赋予超级用户权限。

• C. sys

PostgreSQL 中无 SYS 权限,此为干扰项。

• D. dba

DBA 是 Oracle 数据库的权限概念,PostgreSQL 中无此权限。


技术验证
可通过系统表 pg_roles 查询权限差异:

SELECT rolname, rolcanlogin 
FROM pg_roles 
WHERE rolname IN ('user_name', 'role_name');

• 结果示例:

CREATE USER 的 rolcanlogin 字段为 t(允许登录),而 CREATE ROLE 默认为 f


实际应用场景
• 用户(User):直接关联“人”或“应用”,需登录执行操作(如开发者账号、服务账号)。

• 角色(Role):用于权限分组(如 read_onlyadmin),通过继承机制集中管理权限。


答案:B. login
(通过 CREATE ROLE 创建的对象需额外赋予 LOGIN 权限才能登录)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论