Oracle权限总结

1. 系统权限管理
  scott triger 默认为锁定。应该解锁(ALTER USER ACCOUNT LOCK/UNLOCK )
  sys :oracle 网络管理员。全局的管理员
  system:普通管理员
  scott :普通用户
  oracle使用条件:启用监听(lsnrctl start),启用数据库实例(oradin -startup -sid orcl)
  创建用户:
  登陆SYS:sqlplus /as sysdba conn lisi/lisi
  show user(sqlplus) whoami(linux)
  create(alter) user lisi identified by lisi;
  分配权限:
  关键字: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权限
  自己创建的表就拥有了这张表的所有权限
  撤销权限:
  关键字:revoke XX from user;
  revoke create session from lisi;
  revoke create table from lisi;
  revoke unlimited tablespace from lisi;
  查看系统权限的数据字典:

  SELECT * FROM user_sys_privs;

2. 对象权限
  概念:访问其他用户创建的对象,每个对象都属于某一个用户。其他对象访问,需要赋权限
  两个用户属于两个不同的事务。一个用户下没有COMMIT,另一个用户不能访问,COMMIT类似存盘的概念
  授权对象权限:
  关键字:grant xx on table to user;
  例子 :grant select,insert,update,delete on table to lisi;
  授权所有权限:grant all on table to user(public);
  撤销权限:
  关键字:revoke XX on table from user(public);
  例子 :revoke all on table from lisi(public);
  谁拥有权限,谁可以授权
  查看对象权限的数据字典:
  SELECT * FROM user_tab_privs;
  显示格式:
  SET linesize 400
  dbms_output.disable;
  插入的时候会将表锁定,表级别的锁
    对table的列的权限控制:
  授权:grant xx(column) on table to user;
  撤销权限:revoke xx(column) on table from user;
  insert,update可以控制到列,select,delete不行
  数据字典:

      select * from user_col_privs;
  查询的概念:
  DDL(数据定义语言),DML(数据操纵语言),DCL(授权和撤销权限)。只有DML语言有TRANSACTION的控制

3. 权限传递
  系统权限的传递:
  默认 :权限可以使用,但是不能传递(9i和10g不一样)
  权限传递:grant XX to user with admin option
  撤销传递:源头断了,就不能传递了
  对象权限的传递:

  默认 :权限可以使用,不能传递
  权限传递:grant XX on table to user with grant option;
  撤销传递:源头断了,就不能传递了(9i和10g不一样)

4. 角色管理
   概念:角色就是权限的集合
   创建和role:create role XX; drop role XX;
    权限放在role:grant XX to role;
  权限授权给user:grant XX to user;
  撤销权限: revoke XX from user或者删除角色
  使用范围:有限权限太高,不能直接赋予role,只能赋予user,例如:UNLIMITED TABLESPACE
  create table 和create any table的区别
  create table:只能给自己创建表
  create any table:不仅可以给自己创建表,还可以给任何用户创建表
  只有alter any table和drop any table权限
  拥有create table,就拥有了alter table 和drop table
  角色不属于任意一个用户。是共用的。

5. 三种登陆方式
  普通用户密码修改
  用SYS用户登录,修改密码:
  命令行:alter user scott identified by tiger;
  图形界面也可以修改:会转化为SQL语句
  SYS(SYSDAA,SYSOPER)用户密码丢了。不能直接修改
  oracle数据库的三种验证机制
  a.操作系统验证
  b.密码文件验证
  c.数据库的验证
  一般的oracle用户 :使用数据库的验证,先启动数据库,然后再验证
  SYS(SYSDAA,SYSOPER)用户:操作系统验证和密码文件的验证
  oracle的启动过程
  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
  windows下oracle的启动过程
  lnsrctl start

  oradin -start -sid orcl
  默认是操作系统验证,没有验证通过在进行密码文件的验证
  计算机管理:组:ora_dba
  sqlplus / as sysdba(操作系统的验证)
  sqlpuls sys/oracle as sysdba(密码文件的验证)
  实际应用中。一般把操作系统验证取消
  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. 帐户管理细节
  创建用户
  CREATE USER 用户名
  IDENTIFIED BY 密码
  DEFAULT TABLESPACE 默认表空间(属于用户的TABLE,INDEX,约束)
  TEMPORARY TABLESPACE 临时表空间(主要使用排序.GROUP BY ORDER BY等)
  QUOTA(限额) 整数 K|M|LIMITED ON 表空间(QUOTA 50M ON TABLESPACE)
  参考orcle客户端的图形界面(限额)。分配了UNLIMITED TABLESPACE分配了,就没有限额
  图形界面创建用户时候。默认给了角色,用户没有任何数据。在方案里面没有用户,默认在安全性里面

  用户加锁解锁和口令失效
  命令行:ALTER XX USER ACCOUNT LOCK/UNLOCK;
  用户口令即刻失效:ALTER USER XX PASSWORD EXPIRE;(EBS创建用户的时候)
  DROP USER XX [CASCADE]
  CASCADE:表示删除用户所有对象
  drop user XX cascade;

猜你喜欢

转载自1589078721.iteye.com/blog/2145201