Oracle的权限有两种:system privileges:用户所做的操作会对数据字典造成影响;object privileges:用户所做的操作会对数据造成影响; System Privilege:大概有200多个系统权限,常用的系统权限包括:
- CREATE SESSION
- RESTRICTED SESSION:当数据库处于restricted状态的时候,这些用户可以进入;
- ALTER DATABASE
- ALTER SYSTEM
- CREATE TABLESPACE
- CREATE TABLE
- GRANT ANY OBJECT PRIVILEGE
- CREATE ANY TABLE
- DROP ANY TABLE
- INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
- SELECT ANY TABLE
GRANTprivilege1,privilege2 TO username; grantcreate table to scott with admin option;connectscott/tiger;grantcreate table to sj; 用户scott只能在自己的schema中建立表用户sj也只能在自己的schema中建立表如果将scott的该权限收获,sj的权限将依旧存在; --查看用户所拥有的权限,并且看其是否可以继续授权select * fromdba_sys_privs where grantee="SJ"; 授予any table权限的,任然不能操作SYS表空间中的表;Object Privileges可以将select,update,delete,insert,alter,execute等DML操作权限赋给用户,可以针对表,也可以针对表中的某些列,例:grantselect on scott.emp to sj;grant update (order_status) on scott.orders to sj;--在列这个级别分配会造出严重的系统负担;grant allon scott.regions to sj;Object Privileges 权限可以级联收回revoke select on scott.empfrom sj;-----------通过sj再赋予其他用户的权限在此语句执行后都将收回;创建和管理角色--查看用户所拥有的角色,并查看是否可以继续授权select * fromdba_role_privs where grantee="SJ"; A role isbundle of system and/or object privileges that can be granted and revoked as aunit, and having been granted can betemporarily activated or deactivated with in a session;CREATE ROLE rolename;角色的名字不能和现有用户的用户名重复,也不能和现有的角色名重复; createrole hr_junior;grantcreate session to hr_junior;grantselect on hr.regions to hr_junior createrole hr_senior;granthr_junior to hr_senior with admin option;grantupdate on hr.regions to hr_senior; createrole hr_manager;granthr_senior to hr_manager with admin option;grant allon hr.regions to hr_manager; 和system privileges权限的收回方式一样,role的收回也是不能级联进行的; 预先定义好的角色:
- CONNECT:为了向后兼容,现在改为CREATE SESSION,可以创建表
- RESOURCE:为了向后兼容,可以创建表或存储过程;并且有UNLIMITED TABLESACPE权限;
- DBA:几乎具备所有的权限,但是不能启动和关闭数据库;
- SELECT_CATALOG_ROLE:数据库初级管理员最好有这个,它能拥有许多object privileges的权限,但是没有system privileges的权限,也没有用户数据的权限,不能看到用户数据;
- SCHEDULER_ADMIN:具有管理批量计划脚本的权限
there isalso a predefined role PUBLIC, which is always granted to every database useraccount;例:grant select on hr.regions topublic;------通过执行这个语句,系统中的所有用户都可以获得对这个表的select权限;--将一个用户的默认角色失效ALTER UESR sj DEFAULT ROLE NONE;--当sj用户登录的时候,它没有任何可用的角色,甚至不能登录;grant connect to sj --将登录角色赋给sjalter user sj default role connect;---将登录角色作为sj的默认角色SET ROLE rolename;CTRATEROLE rolename IDENTIFIED USING procedure_name;Oracle用户管理概述Oracle在AIX上一些处理相关资讯 Oracle教程
- Oracle中纯数字的varchar2类型和 (07/29/2015 07:20:43)
- Oracle教程:Oracle中查看DBLink密 (07/29/2015 07:16:55)
- [Oracle] SQL*Loader 详细使用教程 (08/11/2013 21:30:36)
| - Oracle教程:Oracle中kill死锁进程 (07/29/2015 07:18:28)
- Oracle教程:ORA-25153 临时表空间 (07/29/2015 07:13:37)
- Oracle教程之管理安全和资源 (04/08/2013 11:39:32)
|
本文评论 查看全部评论 (0)