Oracle 用户,角色,权限等
权限管理是 Oracle 系统的精华,不同用户登录到同一数据库中,可能看到不同数量的表,拥有不同的权限。Oracle 的权限分为系统权限和数据对象权限,共一百多种,如果单独对用户授权,很囧,有一些用户需要的权限是相同的,就把这些用户归为同一类——某种角色,通过设立一些有预定权限的角色简化和明确授权操作,角色出现的动机也就是为了简化权限管理,它是权限的集合。一般做法是:系统把权限赋给角色,然后把角色赋给用户,当然也可以直接把某权限赋给用户。Oracle 提供细粒度的权限,可以对表的某一列单独设置权限,可以对某用户查询某表自动增添 where 限制条件。
权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级、System 系统级、Role 角色级。这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户。对管理权限而言,角色是一个工具,权限能够被授予给一个角色,角色也能被授予给另一个角色或用户。用户可以通过角色继承权限,除了管理权限外角色服务没有其它目的。权限可以被授予,也可以用同样的方式撤销。
Oracle 的角色存放在表 dba_roles 中,某角色包含的系统权限存放在 dba_sys_privs 中,包含的对象权限存放在 dba_tab_privs 中。
下面是“角色”、“用户”和“权限”的互查:
1. 用户
例:
@>conn system/888888 Connected. SYSTEM@userdata>create user user50 identified by user50; User created. SYSTEM@userdata>grant connect,resource to user50; Grant succeeded.
查看当前登录用户拥有的所有角色和系统权限
USER50@userdata>select * from session_privs; PRIVILEGE ------------------------------------------------------------------------------------------------------------------------ CREATE SESSION UNLIMITED TABLESPACE CREATE TABLE CREATE CLUSTER CREATE SEQUENCE CREATE PROCEDURE CREATE TRIGGER CREATE TYPE CREATE OPERATOR CREATE INDEXTYPE 10 rows selected.
USER50@userdata>select * from role_sys_privs; ROLE PRIVILEGE ADMIN_OPT ---------------- ------------------------ --------- RESOURCE CREATE SEQUENCE NO RESOURCE CREATE TRIGGER NO RESOURCE CREATE CLUSTER NO RESOURCE CREATE PROCEDURE NO RESOURCE CREATE TYPE NO CONNECT CREATE SESSION NO RESOURCE CREATE OPERATOR NO RESOURCE CREATE TABLE NO RESOURCE CREATE INDEXTYPE NO 9 rows selected.
查看某一用户拥有的对象权限
SYSTEM@userdata>grant select on scott.emp to user50; SYSTEM@userdata>select * from dba_tab_privs where GRANTEE='USER50'; GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY -------------------- --------------- --------------- --------------- --------------- --------- --------- USER50 SCOTT EMP SCOTT SELECT NO NO
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)