*Oracle中的权限划分非常复杂,权限分为系统权限与用户权限,角色就是具有几种权限的集合体.角色分为预定义角色与自定义角色.
(1)预定义角色指把常用权限集中起来形成角色,比如dba,connect,resource等角色.
(2) 可以操作表是指c(create)r(read)u(update)d(delete)(增删改查)表.
(3)revoke 角色 from 用户;(撤销角色命令.)
(4)drop user 用户名 (cascade);(删除指定用户,如果这个用户自己创建过数据对象,那后面要加cascade一并删除用户的数据.如果还想要数据就冻结用户而不是删除.)
(5)当一个用户被创建且当这个用户创建了任意一个数据对象,这是dbms会创建一个对应的方案(schema)与该用户对应,并且该方案的名字与用户名一致.一个db实例包含多个账户与方案,每个账户创建的数据对象在自己对应的方案中,用户
(6)给另一个用户查看自己表的的权限grant select(update|delete|insert|all) on 表名 to 用户名;(用当前已被授权用户查询其他用户表时要加上其他用户名.表名.即select * from 方案名.表名;)
(7)1、with admin option系统权限的传递
with admin option的意思是被授予该权限的用户有权将某个权限(如create any table)授予其他用户或角色,取消是不级联的。
如授予A系统权限create session with admin option,然后A又把create session权限授予B,但管理员收回A的create session权限时,B依然拥有create session的权限。但管理员可以显式收回B create session的权限,即直接revoke create session from B.
2、with grant option用户权限的传递
with grant option的意思是:权限赋予/取消是级联的,如将with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效,如grant select on table with grant option to A,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。
(8)使用profile文件对用户口令进行管理.
语法create profile 文件名 limit failed_login_ attempts 3 password_lock_time 2;(创建文件profile登录3次失败后账户锁定2天.)
alter user 用户名 profile 文件名;(讲profile文件分配给指定账户.)
alter user 用户名 account unlock;(将指定账户解锁.)
(9)终止口令
可以限制用户在一定时间内更换密码create profile 文件名 limit password_life_time 天数 password_grace_time 缓解天数;
alter user 用户名 profile 文件名;(讲profile文件分配给指定账户.)
(10)删除profile命令
drop profile 文件名;
(11)Oracle中普通用户登录正常按照数据库方式验证,如果是特权用户默认以操作系统方式验证(需要当前系统用户在ora_dba组下,也可以通过配置sqlnet.ora文件改变验证方式.),如果失败再按照数据库方式验证,并且登录后自动转换为sys用户.
(12)丢失管理员密码处理方法.
1.搜索名为PWD数据库实例名.ora文件.
2.备份一份然后删掉原文件.
3.通过命令生成新的密码文件orapwd file=原来密码文件的全路径\密码文件名.ora password=新密码 entries=10;//entries:允许几个特权用户.
file:密码文件全路径名.password:新密码.entries:表示这个密码文件最多支持多少个sysdba/sysoper特权用户.
*练习
create user 用户名 identified by 密码;
grant connect to 用户名;
grant resource to 用户名;
conn 用户名/密码;
create table users(id number);(创建一张名为users的表)
insert into users values(1);
select * from users;
conn 高级用户/密码;
revoke connect from 用户名;(撤销角色)
revoke resource from 用户名;
drop user 用户名 cascade;(删除指定用户.)