Oracle 的用户管理

Oracle 的用户访问控制


1、权限
Oracle 数据库安全分为:
系统安全
数据安全


系统权限:访问数据库的权限
对象权限:操作数据库对象的内容


schema:对象的集合。如表、视图、索引等。


schema 举例:


scott user 下的 table、index、sequence、view 等数据库对象统称为 scott schema。


schema 和 user 的关系:一一对应。
在 oracle 中创建一个 user,就会创建一个以该 user 命名的 schema,以后通过该 schema
来管理该 user 下的对象。
描述 select * from scott.emp;
访问 scott schema 下的 emp 对象


scott user 下的所有对象集合称为 scott schema


2、Oracle 系统权限:


166 种以上的权限
DBA 拥有最高的系统权限,典型的权限包括:
创建用户
删除用户
删除表
备份表
......




2.1 创建用户


[oracle@centos1 ~]$ sqlplus / as sysdba


SQL*Plus: Release 11.2.0.1.0 Production on Fri Aug 31 16:43:53 2012


Copyright (c) 1982, 2009, Oracle.  All rights reserved.




Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> create user test identified by test;


User created.


SQL> conn test/test;
ERROR:
ORA-01045: user TEST lacks CREATE SESSION privilege; logon denied
Warning: You are no longer connected to ORACLE.


2.2 用户的系统权限


创建用户后,用户是没有任何系统权限的,DBA 可以为这个用户授予特殊的系统权限:
开发人员可能需要如下系统权限:
create session
create table
create sequence
create view
create procedure




语法: grant privilege [,privilege...] to user [,user]


SQL> grant create session to test;


Grant succeeded.


SQL> conn test/test;
Connected.


SQL> create table t1 ( id number(4));
create table t1 ( id number(4))
*
ERROR at line 1:
ORA-01031: insufficient privileges


SQL> conn / as sysdba
Connected.
SQL> grant create table to test;
Grant succeeded.


SQL> alter user test quota unlimited on users;
User altered.


SQL> conn test/test
Connected.
SQL> create table t1 ( id number(4));
Table created.




3、角色


Oracle 引入 role 概念是为了简化权限管理。


举例:如果把 create table\create view\create session\create sequence 四个权限
分配给3 个user,如果不引入 role,则需要一一分配 12 次。
如果引入 role dev,可以把这四种权限授予 dev role,然后把 dev role 一一分配给
这 3 个 user,这样只需执行 3 次分配即可。


创建角色


SQL> create role dev;


Role created.


为角色授予权限
SQL> grant create table,create view,create session to dev;


Grant succeeded.




将角色分配给用户
SQL> grant dev to test;


Grant succeeded.


修改 user 密码


SQL> grant dev to test;


Grant succeeded.




对象权限:
对象 table view sequence procedure
ALTER YES YES
DELETE YES YES
EXECUTE YES
INDEX YES
INSERT           YES YES
REFERENCES YES
SELECT YES YES
UPDATE         YES YES




对象权限的授权


GRANT OBJECT_PRIV ON OBJECT TO [USER|ROLE|PUBLIC] WITH GRANT OPTION


示例:


SQL> grant select on scott.emp to test;


Grant succeeded.


SQL> grant select on scott.dept to dev,test;


Grant succeeded.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值