您的位置:首页 > 数据库 > Oracle

oracle 权限相关内容总结

2012-04-13 01:08 459 查看
1. 系统权限管理

1.1 3个默认用户

oracle 9i

sys change_on_install [as sysdba]--sqlplus /as sysdba

system manager

scott triger

oracle 10g以上

sys 安装的时候设置. [as sysdba]

system 安装的时候设置.

scott triger 默认为锁定。应该解锁(ALTER USER ACCOUNT LOCK/UNLOCK )

sys :oracle 网络管理员。全局的管理员

system:普通管理员

scott :普通用户

oracle使用条件:启用监听(lsnrctl start),启用数据库实例(oradin -startup -sid orcl)

1.2 创建用户

登陆SYS:sqlplus /as sysdba conn lisi/lisi

show user(sqlplus) whoami(linux)

create(alter) user lisi identified by lisi;

1.3 分配权限

关键字:grant XX to user;

grant create session to lisi;

grant create table to lisi;

grant unlimited tablespace to lisi;

拥有create table 权限,就拥有了select,insert,update,delete table和drop table权限

自己创建的表就拥有了这张表的所有权限

1.4 撤销权限

关键字:revoke XX from user;

revoke create session from lisi;

revoke create table from lisi;

revoke unlimited tablespace from lisi;

1.5 查看系统权限的数据字典

SELECT * FROM user_sys_privs;

2. 对象权限

2.1 概念:访问其他用户创建的对象,每个对象都属于某一个用户。其他对象访问,需要赋权限

2.2 两个用户属于两个不同的事务。一个用户下没有COMMIT,另一个用户不能访问,COMMIT类似存盘的概念

2.3 授权对象权限

关键字:grant xx on table to user;

例子 :grant select,insert,update,delete on table to lisi;

授权所有权限:grant all on table to user(public);

2.4 撤销权限

关键字:revoke XX on table from user(public);

例子 :revoke all on table from lisi(public);

2.5 谁拥有权限,谁可以授权

2.6 查看对象权限的数据字典

SELECT * FROM user_tab_privs;

2.7 显示格式

SET linesize 400

dbms_output.disable;

插入的时候会将表锁定,表级别的锁

2.8 对table的列的权限控制

授权:grant xx(column) on table to user;

撤销权限:revoke xx(column) on table from user;

insert,update可以控制到列,select,delete不行

数据字典:select * from user_col_privs;

2.9 查询的概念

DDL(数据定义语言),DML(数据操纵语言),DCL(授权和撤销权限)。只有DML语言有TRANSACTION的控制

3. 权限传递

3.1系统权限的传递

默认 :权限可以使用,但是不能传递(9i和10g不一样)

权限传递:grant XX to user with admin option

撤销传递:源头断了,就不能传递了

3.2对象权限的传递

默认 :权限可以使用,不能传递

权限传递:grant XX on table to user with grant option;

撤销传递:源头断了,就不能传递了(9i和10g不一样)

4. 角色管理

4.1 概念:角色就是权限的集合

4.2 创建和role:create role XX; drop role XX;

4.3 权限放在role:grant XX to role;

4.4 权限授权给user:grant XX to user;

4.5 撤销权限: revoke XX from user或者删除角色

4.6 使用范围:有限权限太高,不能直接赋予role,只能赋予user,例如:UNLIMITED TABLESPACE

4.7 create table 和create any table的区别

create table:只能给自己创建表

create any table:不仅可以给自己创建表,还可以给任何用户创建表

4.8 只有alter any table和drop any table权限

拥有create table,就拥有了alter table 和drop table

4.9 角色不属于任意一个用户。是共用的。

4.10 查看role的数据字典:

select * from dba_roles; --查询当前所有ROLE列表,包括自定义

select * from dba_role_privs; --查询某用户的ROLE权限

select * from ROLE_SYS_PRIVS; --查询当前用户的ROLE,及其所包含的系统权限

5. 三种登陆方式

5.1 普通用户密码修改

用SYS用户登录,修改密码:

命令行:alter user scott identified by tiger;

图形界面也可以修改:会转化为SQL语句

5.2 SYS(SYSDAA,SYSOPER)用户密码丢了。不能直接修改

5.3 oracle数据库的三种验证机制

a.操作系统验证

b.密码文件验证

c.数据库的验证

一般的oracle用户 :使用数据库的验证,先启动数据库,然后再验证

SYS(SYSDAA,SYSOPER)用户:操作系统验证和密码文件的验证

5.4 oracle的启动过程

5.4.1.linux下oracle启动过程:

a.lsnrctl start(启用监听)

b.sqlpuls /(sys/oracle) as sysdba

c.startup 启动实例

先链接监听,再链接数据库实例.linux有严格的启动数据

监听:为了区分SYS(SYSDAA,SYSOPER)用户和一般的用户

10g以后的用法:sqlplus /(sys/oracle) as sysdba

10g前的用法 :sqlplus /nolog;conn sys/oracle as sysdba

5.4.2 windows下oracle的启动过程

lnsrctl start

oradin -start -sid orcl

5.5 默认是操作系统验证,没有验证通过在进行密码文件的验证

计算机管理:组:ora_dba

sqlplus / as sysdba(操作系统的验证)

sqlpuls sys/oracle as sysdba(密码文件的验证)

5.6 实际应用中。一般把操作系统验证取消

5.7 SYS密码忘记。只能修改密码文件

备份product\10.2.0\db_2\database下的PWDorcl.ora ora文件

使用命令重新生成密码文件:PWDorcl.ora ora

命令:

orapwd file=pwdora10g.ora password-sys entries=10(特权用户) force(whether overwrite)

SYS特权用户查看数据字典:SELECT v$pwdfile_users(动态性能表);

6. 帐户管理细节

6.1 创建用户

CREATE USER 用户名

IDENTIFIED BY 密码

DEFAULT TABLESPACE 默认表空间(属于用户的TABLE,INDEX,约束)

TEMPORARY TABLESPACE 临时表空间(主要使用排序.GROUP BY ORDER BY等)

QUOTA(限额) 整数 K|M|LIMITED ON 表空间(QUOTA 50M ON TABLESPACE)

6.2 参考orcle客户端的图形界面(限额)。分配了UNLIMITED TABLESPACE分配了,就没有限额

6.3 图形界面创建用户时候。默认给了角色,用户没有任何数据。在方案里面没有用户,默认在安全性里面

6.4 用户加锁解锁和口令失效

命令行:ALTER XX USER ACCOUNT LOCK/UNLOCK;

用户口令即刻失效:ALTER USER XX PASSWORD EXPIRE;(EBS创建用户的时候)

6.5 DROP USER XX [CASCADE]

CASCADE:表示删除用户所有对象

drop user XX cascade;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: