PostgreSQL中Create Role相比Create User缺少的权限是:____
A
superuser
B
login
C
sys
D
dba
在 PostgreSQL 中,CREATE ROLE 相比 CREATE USER 缺少的默认权限是 LOGIN。以下为详细解析:
核心区别
CREATE USER
本质是CREATE ROLE ... WITH LOGIN的语法糖,默认包含LOGIN权限,即允许用户登录数据库。例如:CREATE USER alice WITH PASSWORD 'secret'; -- 自动包含 LOGINCREATE 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_only、admin),通过继承机制集中管理权限。
答案:B. login
(通过 CREATE ROLE 创建的对象需额外赋予 LOGIN 权限才能登录)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




