标签:res oracle def arc use 查看 自动 head 服务
权限管理是 Oracle 系统的精华,不同用户登录到同一数据库中,可能看到不同数量的表,拥有不同的权限。Oracle 的权限分为系统权限和数据对象权限,共一百多种,如果单独对用户授权,很囧,有一些用户需要的权限是相同的,就把这些用户归为同一类——某种角色,通过设立一些有预定权限的角色简化和明确授权操作,角色出现的动机也就是为了简化权限管理,它是权限的集合。一般做法是:系统把权限赋给角色,然后把角色赋给用户,当然也可以直接把某权限赋给用户。Oracle 提供细粒度的权限,可以对表的某一列单独设置权限,可以对某用户查询某表自动增添 where 限制条件。
权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级、System 系统级、Role 角色级。这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户。对管理权限而言,角色是一个工具,权限能够被授予给一个角色,角色也能被授予给另一个角色或用户。用户可以通过角色继承权限,除了管理权限外角色服务没有其它目的。权限可以被授予,也可以用同样的方式撤销。
Oracle 的角色存放在表 dba_roles 中,某角色包含的系统权限存放在 dba_sys_privs 中,包含的对象权限存放在 dba_tab_privs 中。
下面是“角色”、“用户”和“权限”的互查:
例:
@>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>select * from dba_role_privs where GRANTEE=‘USER50‘; GRANTEE GRANTED_ROLE ADMIN_OPT DEFAULT_R ------------------------------ -------------------- --------- --------- USER50 RESOURCE NO YES USER50 CONNECT NO YES SYSTEM@userdata>select * from dba_sys_privs where GRANTEE=‘USER50‘; GRANTEE PRIVILEGE ADMIN_OPT ------------------------------ ------------------------------ --------- USER50 UNLIMITED TABLESPACE NO
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
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
[系统权限只能由DBA用户授出:sys, system]
授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...;
[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。]
标签:res oracle def arc use 查看 自动 head 服务
原文地址:http://www.cnblogs.com/ilifeilong/p/7624329.html