如何授予DBA权限_GRANT DBA TO赋予超级管理员角色

GRANT DBA TO 授予的是 Oracle 内置 DBA 角色,含约 160 个系统权限及数据字典 SELECT 权限,但不含 SYSDBA/SYSOPER 特权,且非最小权限,生产环境应避免滥用。Oracle 中 GRANT DBA TO 实际授予的是什么权限它不是"超级管理员"这个模糊概念的等价物,而是授予 dba 角色------一个 oracle 内置角色,包含约 160 个系统权限(如 create any table、drop any index、alter database),以及对数据字典视图的 select 权限。但注意:dba 角色不包含 sysdba 或 sysoper 系统特权,无法执行启动/关闭数据库、恢复控制文件等底层操作。常见错误现象:GRANT DBA TO user1; 后,用户仍无法 STARTUP 或访问 V$INSTANCE ------ 因为那需要 AS SYSDBA 连接,和角色无关。DBA 是角色(role),不是权限(privilege)本身,必须通过 SET ROLE DBA 或登录时启用(取决于 DEFAULT ROLE 设置)才能生效授予前需确认目标用户已存在,且执行者拥有 GRANT ANY ROLE 权限(通常只有 SYS 或已授该权限的用户能操作)Oracle 12c 及以后,DBA 角色默认不包含 UNLIMITED TABLESPACE,需单独授予,否则用户建表可能报 ORA-01950: no privileges on tablespace为什么不能直接用 GRANT DBA TO 替代最小权限原则因为 DBA 是全库级高危角色:它允许用户删任意表、改任意存储过程、导出所有用户数据,甚至通过 CREATE LIBRARY + 外部函数执行操作系统命令(在旧版本中曾被用于提权)。生产环境直接授 DBA,等于交出数据库的物理控制权。使用场景仅限于:DBA 自己管理账号、临时排障账号、隔离的开发测试库。绝不可用于应用连接账号或第三方工具账号。替代方案更安全:GRANT CREATE SESSION, CREATE TABLE, SELECT ANY DICTIONARY TO user1; 按需组合若需部分 DBA 能力,可复制 DBA 角色内容,新建受限角色(如去掉 DROP ANY * 类权限)Oracle 12c+ 支持权限分析(DBMS_PRIVILEGE_CAPTURE),可先捕获真实使用权限,再精准授权GRANT DBA TO 在不同 Oracle 版本中的兼容性差异语法本身从 Oracle 7 一直保留至今,但行为有隐性变化。最关键是 12c 引入的"公共用户/本地用户"模型,以及 19c 对角色激活的限制增强。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。

相关推荐
老白干31 分钟前
jjwt 0.9.1 在 JDK 11+ 上的两个“坑”与完整解决方案
java·python·log4j
花青泽1 小时前
5-数据库-SQL注入-联合查询-关键字绕过-day13
数据库·sql
笨鸟先飞,勤能补拙7 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
天桥下的卖艺者7 小时前
使用scitable包,两步生成逆概率删失权重(IPCW)
数据库·r语言
隔窗听雨眠8 小时前
AI原生数据库浪潮:国产数据库的架构重构与路径之争
数据库
长和信泰光伏储能8 小时前
京津冀光伏发电:绿色能源的未来之路
python·能源
数据库小学妹8 小时前
数据库选型实战:从数据类型到TCO成本,五维决策框架+九款产品横评
数据库·信创·国产数据库·数据库选型·oracle迁移
浦信仿真大讲堂8 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
Gu Gu Study9 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
神龙天舞20019 小时前
MySQL 备库为什么会延迟好几个小时
android·数据库·mysql