oracle中角色的用户和权限管理,用户角色与权限控制

一、oracle中的用户

系统用户:sys、system(系统创建的用户)

登录命令:sqlplus sys/密码 as sysdba

备注:sys是oracle数据库中最高权限用户,角色为sysdba(数据库管理员),system用户的权限仅次于sys,角色为sysoper(数据库操作员)

超级用户: /

登录命令:sqlplus / as sysdba

普通用户:用户自己创建的用户(系统自带的有scott)

备注:给锁定用户解锁并更改密码,如scott,锁定的用户一般密码都过期要修改密码

解锁:alter user scott account unlock;

改密码:alter user scott identified by tiger;

1.1、创建用户

create user 用户名 identified by 密码

例如:create user abc identified by 123;

创建时设置默认表空间:create user 用户名 identified by 密码 default tablespace 表空间名

例如:create user abc identified by 123 default tablespace system;

备注:新创建的用户默认表空间为users,状态为open状态

1,2、用户与模式(schema)

模式是指用户所拥有的所有的对象的集合,对象包括:表、索引、视图等,每个用户都会有独立的模块信息,schema必须依赖于用户而存在 ,意义在于标志某个对象的所有者,schema+对象的组合可以限制数据库中唯一对象,例如:select * from emp,实际被oracle 翻译为 select * from system.emp(system用户登录的),可以跨schema操作,在system下可以查询 select * from sys.dual

查看当前用户及schema信息sql语句如下:select sys_context('userenv','current_user') current_user,sys_context('userenv','current_schema') current_schema from dual;

备注:sys_context函数是Oracle提供的一个获取环境上下文信息的预定义函数。该函数用来返回一个指定namespace下的parameter值

system 登录不能查看其他用户的对象,除非在对象前加该用户,如:desc abc.hh(显示abc用户下的hh表结构,desc hh 是不会显示abc中的hh表)

1.3、查看当前登录用户(show user)

例如:select * from user_users;

1.4、用另一个用户登录(conn 账号/密码)

例如:conn scott/tiger

1.5、更改用户默认表空间(alter user 用户名 default tablespace 表空间名)

例如:alter user scott default tablespace system;

1.6、删除用户(drop user 用户名)

例如:drop user scott;

若用户里面存在对象,要加cascade

例如:drop user abc cascade;

二、oracle中的权限

oracle中共有两种权限:系统权限和对象权限

2.1、系统权限

系统权限是指针对数据库中特定操作(如创建数据表)的许可

2.1.1 、获取系统权限相关信息

select * from dba_sys_privs;

select distinct privilege from dba_sys_privs;(系统所有的权限)

2.1.2、为用户分配系统权限

新创建的用户没有分配任何系统权限,不能登录系统或做其他操作,必须系统管理员先给其分配权限

如创建了用户abc,给其分配创建session的权限如下:

grant create session to abc;(授权后可以用abc账号登录数据库)

grant create table to abc(授权后可创建表)

2.1.3 、回收权限

revoke create session from abc;

2.2、对象权限

对象权限是指针对数据库中已存在的对象(如表、视图等) 的访问和操作,包括

select :用于查询表、视图、序列

insert:像表或视图中插入新的记录

update:更新表中的数据

delete:删除表中的数据

execute:函数、存储过程、程序包等的调用和执行

index:为表创建索引

references:为表创建外键

alter:修改表或序列的属性

2.2.1、为用户赋予select 权限(grant select on 表名 to 用户名)

system用户下存在表hh,要在abc 用户下查看hh表

system用户下授权:grant select on hh to abc;

abc用户下查看:select * from system.hh;

2.2.2、为用户赋予insert权限(grant insert on 表名 to 用户名)

system用户下存在表hh,要在abc 用户下向hh表插入数据

system用户下授权:grant insert on hh to abc;

abc用户下查看:insert into system.hh values('1','nana');

2.2.3、为用户赋予update权限(分所有列更新和部分列更新)

system用户下存在表hh,要在abc 用户下更新hh表中部分列中的数据

system用户下授权:grant update( name) on hh to abc;

abc用户下查看:update system.hh set name='john' where id=1;

system用户下存在表hh,要在abc 用户下更新hh表所有列中的数据

grant update  on hh to abc;

2.2.4、 为用户赋予所有权限system用户下存在表hh,要在abc 用户下操作表hh(增删改查等所有对象权限)

grant all on hh to abc;

2.2.5、回收对象权限

收回abc在system用户下的hh表的查询权限

revoke select on from abc;

三、角色

一个角色可以赋予多个权限,再将角色赋给用户

3.1、角色的创建及使用

3.1.1、角色的创建(create role  角色名)

create role role_hh;

3.1.2、给角色赋权限

grant select on hh to role_hh;

3.1. 3、讲角色的权限赋给用户abc

grant role_hh to abc;

3.2、角色的继承

一个角色的权限可以赋给另外一个角色,如讲角色role_01的权限赋给角色role_02,roele_02将含有role_01的权限

grant role_01 to role_02;

3.3、角色的禁用和启用

3.3.1、角色的禁用

禁用用户abc的所有角色:alter user abc default role none;

3.3.2、角色的启用

为用户abc启用角色role_hh:set  role role_hh;(在abc用户登录状态下)

数据字典:

用户:dba_users(管理员权限才能查看)user_users (普通用户权限查看)

权限:dba_sys_privs(系统权限数据字典)   dba_tab_privs(数据表权限数据字典)

角色:session_roles(当前会话下该用户的默认角色数据字典)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值