【VIP专享】Oracle权限、角色和用户
oracle用户及权限管理

实验三安全管理【开发语言及实现平台或实验环境】Oracle10g【实验目的】练习创建用户、用户的授权、创建角色、将角色授权给用户等安全管理命令【实验原理】一、用户管理1创建用户基本语法:CREATE USER user_name IDENTIFIED[BY password|EXTERNALL Y|GLOBALL YAS 'external_name'][DEFAULT TABLESPACE tablespace_name][TEMPORARY TABLESPACE temp_tablesapce_name][QUOTA n K|M|UNLIMITED ON tablespace_name][PROFILE profile_name][PASSWORD EXPIRE][ACCOUNT LOCK|UNLOCK];注意:在创建新用户后,必须为用户授予适当的权限。
例如,授予用户CREATE SESSION 权限后,用户才可以连接到数据库。
参数说明:user_name:用于设置新建用户名,在数据库中用户名必须是唯一的;IDENTIFIED:用于指明用户身份认证方式;BY password:用于设置用户的数据库身份认证,其中password为用户口令;EXTERNALL Y:用于设置用户的外部身份认证;GLOBALL Y AS'external_name':用于设置用户的全局身份认证,其中external_name为Oracle 的安全管理服务器相关信息;DEFAULT TABLESPACE:用于设置用户的默认表空间,如果没有指定,Oracle将数据库默认表空间作为用户的默认表空间;TEMPORARY TABLESPACE:用于设置用户的临时表空间;QUOTA:用于指定用户在特定表空间上的配额,即用户在该表空间中可以分配的最大空间;PROFILE:用于为用户指定概要文件,默认值为DEFAULT,采用系统默认的概要文件;PASSWORD EXPIRE:用于设置用户口令的初始状态为过期,用户在首次登录数据库时必须修改口令;ACCOUNT LOCK:用于设置用户初始状态为锁定,默认为不锁定;ACCOUNT UNLOCK:用于设置用户初始状态为不锁定或解除用户的锁定状态。
oracle 查看用户、权限、角色

查看用户、权限、角色的命令和视图a1.查看所有用户:select * from dba_users;select * from all_users;select * from user_users;2.查看用户系统权限:select * from dba_sys_privs;select * from session_privs;select * fromuser_sys_privs;3.查看用户对象权限:select * from dba_tab_privs;select * from all_tab_privs;select * fromuser_tab_privs;4.查看所有角色:select * from dba_roles;5.查看用户所拥有的角色:select * from dba_role_privs;select * from user_role_privs;b概述与权限,角色相关的视图大概有下面这些:DBA_SYS_PRIVS:查询某个用户所拥有的系统权限USER_SYS_PRIVS:查询当前用户所拥有的系统权限SESSION_PRIVS:查询当前用户所拥有的全部权限ROLE_SYS_PRIVS:查询某个角色所拥有的系统权限注意:要以SYS用户登陆查询这个视图,否则返回空.ROLE_PRIVS:当前角色被赋予的角色SESSION_ROLES:当前用户被激活的角色USER_ROLE_PRIVS:当前用户被授予的角色另外还有针对表的访问权限的视图:TABLE_PRIVILEGESALL_TAB_PRIVSROLE_TAB_PRIVS:某个角色被赋予的相关表的权限oracle与用户角色权限相关的视图Oracle 本身的数据字典设计我个人觉得很合理,因为DBA_xxx,ALL_xxx,USER_xxx让人一看大概就知道这个视图是干什么用的.本文简要总结了一下与权限,角色相关的视图.一.概述与权限,角色相关的视图大概有下面这些:1、DBA_SYS_PRIVS:查询某个用户所拥有的系统权限。
oracle权限及角色

角色是相关权限的集合,使用角色能够简化权限的管理。
简而言之就是oracle 可以事先把一系列权限集中在一起(角色),打包赋予给用户,那么用户就具有了角色的一系列权限。
oracle预定义角色有25种,它是oracle提供的角色。
经常用到的角色有connect、resource、dba三种角色。
建一个用户,多数情况下,只要给用户赋予connect和resource角色就够了。
connect角色具有一般应用开发人员需要的大部分权限,connect角色具有的系统权限如下:alter sessioncreate clustercreate database linkcreate sessioncreate tablecreate viewcreate sequenceresource角色具有开发人员需要的其他权限,如建立存储过程、触发器等,resource角色等,resource角色隐含了unlimited tablespace系统权限(无限制表空间),resource的系统权限有:create clustercreate indextypecreate tablecreate sequencecreate typecreate procedurecreate triggerdba角色具有所有系统权限及with admin option选项,默认dba用户为sys和system,它们可以将任何系统权限授予给其他用户。
但是dba角色不具备sysdba 和sysoper的权限,即启动和关闭数据库。
select*from tab;--查询所有的用户select*from dba_users;--查询所有的角色select*from dba_roles;-- 权限有140多种,要赋值给用户,使用sql grant sql语句,太麻烦,产生角色概念(23种角色),先把权限赋值给角色,比如说connect角色(包含7中权限)--,把角色赋值给用户-- 创建xiaoming用户(使用的是sys账户)-- create user xiaoming identified by 123456;--目前的小名是无法登陆的oracle ,提示没有session权限-- grant create session to xiaoming; 把session登陆数据库的权限给小名(权限140多种)--connect 角色包含了sesison权限和另外的6种权限--把connect 角色赋值给xiaoming xiaoming就可以登陆数据库,在吧resource 角色赋值给xiaoming,可以创建表触发器、存储过程等等--grant connect,resource to xiaoming;-- 目前 xiaoming与 scott 同处在users表空间下面,但是不能相互访问-- 可以通过sys 或者scott用户给xiaoming 赋值查询的权限-- grant select on emp to xiaoming;-- 登陆xiaoming 查询 scott,下面的emp表-- select * from scott.emp;。
第二章 Oracle的用户、权限、角色及表空间的管理

第二章 Oracle的用户、权限、角色及表空间的管理2.1 Oracle默认的系统用户Oracle默认的系统用户:sys/systemsys:这个账户相当于SQL server中的sa账户,是个超级账户,拥有的权限最大,可以完成数据库的所有管理任务system:没有sys的权限大,通常用来创建一些用于查看管理信息的表或视图,同样也不建议使用system架构来创建一些与管理无关的表或视图。
sys和system在登入Oracle工具时,sys只能以系统管理员(sysdba)或系统操作员(sysoper)的权限登入,而system可以直接登入(normal)sysman:是Oracle数据库中用于EM管理的用户,如果不用该用户也可以删除。
scott:是Oracle提供的示例用户,里面有一些初学者学习操作的数据表(emp,dept,salgrade,bonus)Oracle用户登录的语法格式{<username>[/password][@<connect_identifiter>]|/}[as{sysdba|sysoper}]username/password:指定数据库账户用户名,口令connect_identifiter:数据库连接的连接标识符(服务器名)。
如果没有连接标识符,SQL*Plus将连接默认数据库。
sysdbs、sysoper选项是数据库管理权限。
sysdba:数据库管理员的权限sysoper:数据库操作员的权限conn sys/oracle @orcl as sysdbashow userconn system 口令为安装Oracle时的密码:Aa123456启用scott用户给Scott用户解锁语法格式:alter user username account unlock例子:alter user scott account unclockconn scott/tiger2.2 创建表空间什么是表空间?数据与表空间:表空间实际上是数据库上的逻辑存储结构,可以把表空间理解为在数据库中开辟的一个空间,用于存放我们数据库的对象,一个数据可以由多个表空间构成。
oracle权限大全

Oracle权限笔记一、系统的默认用户1.sys;//系统管理员,拥有最高权限2.system;//本地管理员,次高权限3.scott;//普通用户,密码默认为tiger,默认未解锁二、登陆1.sqlplus / as sysdba;//登陆sys帐户2.sqlplus sys as sysdba;//同上3.sqlplus scott/tiger;//登陆普通用户scott三、管理用户1.create user zhangsan;//在管理员帐户下,创建用户zhangsan2.alert user scott identified by tiger;//修改密码四,授予权限1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限2、/*管理员授权*/3、grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限4、grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限5、grant create table to zhangsan;//授予创建表的权限6、grante drop table to zhangsan;//授予删除表的权限7、grant insert table to zhangsan;//插入表的权限8、grant update table to zhangsan;//修改表的权限9、grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权1./*oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的*/2.grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限3.grant drop on tablename to zhangsan;//授予删除表的权限4.grant insert on tablename to zhangsan;//授予插入的权限5.grant update on tablename to zhangsan;//授予修改表的权限6.grant insert(id) on tablename to zhangsan;7.grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和update8.grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限五、撤销权限基本语法同grant,关键字为revoke六、查看权限1.select * from user_sys_privs;//查看当前用户所有权限2.select * from user_tab_privs;//查看所用用户对表的权限七、操作表的用户的表1./*需要在表名前加上用户名,如下*/2.select * from zhangsan.tablename八、权限传递1.grant alert table on tablename to zhangsan with admin option;//关键字with admin option2.grant alert table on tablename to zhangsan with grant option;//关键字with grant option效果和admin类似九、角色角色即权限的集合,可以把一个角色授予给用户1.create role myrole;//创建角色2.grant create session to myrole;//将创建session的权限授予myrole3.grant myrole to zhangsan;//授予zhangsan用户myrole的角色4.drop role myrole;删除角色5./*但是有些权限是不能授予给角色的,比如unlimited tablespace和any关键字*/。
Oracle用户角色与权限控制

alter user system identified by abc123;
12.2 权限
权限(Privilege)的最终作用对象是用户。即所有用 户在数据库内的操作对象和可执行的动作都是受到限制的。 Oracle中共有两种权限:系统权限和对象权限。
select * from system.t_employees order by employee_id;
12.3.2 继承角色
角色继承是指一个角色可以继承其他角色的权限信息, 从而减少自身使用grant的机会。
create role role_hr;
grant role_employee to role_hr;
grant update, insert on t_employees to role_hr;
select table_name, grantee, grantor, privilege from dba_tab_privs where table_name = 'T_EMPLOYEES';
create user cat identified by abc;
grant create session to cat;
grant role_hr to cat;
update system.t_employees set status = 'CXL' where employee_id = 13;
12.3.3 禁用和启用角色
每个用户登录数据库时,都可以获得其默认角色。可以 通过查询视图session_roles来获得当前会话下该用户的默 认角色。管理员可以禁用用户的默认角色,一旦禁用,则用 户从该角色获得的权限将不再有效。
Oracle数据库---用户、角色与权限

1.在Oracle数据库中,存在着视图dba_users,该视图存储了所有用户的基本信息,我们可以通过视图内容来查看。
2.对于开发人员来说,并不会经常使用系统用户登陆数据库,因为系统用户的权限范围较大,如果出现失误,可能对数据库造成较大伤害。
利用系统用户创建新的用户:3.系统用户----system和sysSys为数据库管理员,是数据库中权限最高的用户,可以进行任意操作而不受限制System是数据库操作员,权限仅次于sys用户。
4.查看权限我们发现,新建用户zhulei没有任何权限,所以我们是没法登陆的。
5.分配权限:Grant 权限名to 用户名这样我们就可以登陆了。
虽然可以登陆,但几乎不能做任何事情,比如创建表,就需要分配给它创建表的权限。
grant create table to zhulei;6收回权限Revoke 权限名from 用户名这个时候,用户zhulei又无法登陆了。
上面是系统权限,还有对象权限对象权限就是把对对象的操作权限进行非配Grant 权限名on 对象名to 用户代码:--管理员身份登录,创建一个姓张得用户,初始密码为123,默认表空间为users。
SQL>create user zhangidentified by 123default tablespace users;--查询zhang用户的权限,这里为空,说明没有任何操作权限。
SQL>select * from dba_sys_privswhere lower(grantee)='zhang';--管理员授权zhang用户有登录的权利SQL>grant create session to zhang;。
Oracle新建用户、角色,授权,建表空间

Oracle新建用户、角色,授权,建表空间oracle数据库的权限系统分为系统权限与对象权限。
系统权限( database systemprivilege )可以让用户执行特定的命令集。
例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。
对象权限( database object privilege )可以让用户能够对各个对象进行某些操作。
例如delete权限允许用户删除表或视图的行,select权限允许用户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。
每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。
oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。
用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。
一个用户也可以直接给其他用户授权。
一、创建用户oracle内部有两个建好的用户:system和sys。
用户可直接登录到system用户以创建其他用户,因为system具有创建别的用户的权限。
在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。
例如:Sql代码create user user01 identified by u01;该命令还可以用来设置其他权限,详细情况参见自学资料。
要改变一个口令,可以使用alter user命令:<span style="white-space: pre;"> alter user user01 identified by usr01;</span><span style="white-space: pre;"><span style="white-space: normal;"> </span> </span>现在user01的口令已由“u01”改为“usr01”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle数据库权限、角色和用户总结前言:ORACLE数据库系统预先定义了CONNECT 、RESOURCE、DBA、EXP_FULL_DATABASE、IMP_FULL_DATABASE五个角色。
CONNECT具有创建表、视图、序列等特权;(alter session create cluster )RESOURCE具有创建过程、触发器、表、序列等特权、DBA具有全部系统特权;EXP_FULL_DATABASE、IMP_FULL_DATABASE具有卸出与装入数据库的特权。
权限管理一、权限分类系统权限:系统规定用户使用数据库的权限。
(系统权限是对用户而言)。
实体权限:某种权限用户对其它用户的表或视图的存取权限。
(是针对表或视图而言的)。
二、系统权限管理:1、系统权限分类:DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
2、系统权限授权命令:[系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)]授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...;[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。
]例:SQL> connect system/managerSQL> Create user user50 identified by user50;SQL> grant connect, resource to user50;查询用户拥有哪些权限:SQL> select * from dba_role_privs;SQL> select * from dba_sys_privs;SQL> select * from role_sys_privs;删除用户:SQL> drop user 用户名cascade; //加上cascade则将用户连同其创建的东西全部删除3、系统权限传递:增加WITH ADMIN OPTION选项,则得到的权限可以传递。
SQL> grant connect, resorce to user50 with admin option; //可以传递所获权限。
4、系统权限回收:系统权限只能由DBA用户回收命令:SQL> Revoke connect, resource from user50;说明:1)如果使用WITH ADMIN OPTION为某个用户授予系统权限,那么对于被这个用户授予相同权限的所有用户来说,取消该用户的系统权限并不会级联取消这些用户的相同权限。
2)系统权限无级联,即A授予B权限,B授予C权限,如果A收回B的权限,C的权限不受影响;系统权限可以跨用户回收,即A可以直接收回C用户的权限。
三、实体权限管理(对象权限)1、实体权限分类:select, update, insert, alter, index, delete, all //all包括所有权限execute //执行存储过程权限user01:SQL> grant select, update, insert on product to user02;SQL> grant all on product to user02;user02:SQL> select * from user01.product;// 此时user02查user_tables,不包括user01.product这个表,但如果查all_tables则可以查到,因为他可以访问。
2. 将表的操作权限授予全体用户:SQL> grant all on product to public; // public表示是所有的用户,这里的all权限不包括drop。
[实体权限数据字典]:SQL> select owner, table_name from all_tables; // 用户可以查询的表SQL> select table_name from user_tables; // 用户创建的表SQL> select grantor, table_schema, table_name, privilege from all_tab_privs; // 获权可以存取的表(被授权的)SQL> select grantee, owner, table_name, privilege from user_tab_privs; // 授出权限的表(授出的权限)查看用户拥有哪些系统权利Sql> select grantee,privilege from dba_sys_privs where grantee=‘SCOTT’;查看用户拥有哪些对象权利Sql> select grantee,privilege,owner,table_name from dba_tab_privs where grantee=‘SCOTT’;3. DBA用户可以操作全体用户的任意基表(无需授权,包括删除):DBA用户:SQL> Create table stud02.product(id number(10),name varchar2(20));SQL> drop table stud02.emp;SQL> create table stud02.employeeasselect * from scott.emp;4. 实体权限传递(with grant option):user01:SQL> grant select, update on product to user02 with grant option; // user02得到权限,并可以传递。
5. 实体权限回收:user01:SQL>Revoke select, update on product from user02; //传递的权限将全部丢失。
说明1)如果取消某个用户的对象权限,那么对于这个用户使用WITH GRANT OPTION授予权限的用户来说,同样还会取消这些用户的相同权限,也就是说取消授权时级联的。
Oracle 用户管理一、创建用户的Profile文件SQL> create profile student limit // student为资源文件名FAILED_LOGIN_ATTEMPTS 3 //指定锁定用户的登录失败次数PASSWORD_LOCK_TIME 5 //指定用户被锁定天数PASSWORD_LIFE_TIME 30 //指定口令可用天数二、创建用户SQL> Create User usernameIdentified by passwordDefault Tablespace tablespace_nameTemporary Tablespace tablespace_nameProfile profile_nameQuota integer/unlimited on tablespace;例:SQL> Create user acc01identified by acc01 // 如果密码是数字,请用双引号括起来default tablespace accounttemporary tablespace tempprofile defaultquota 50m on account;SQL> grant connect, resource to acc01;查询用户缺省表空间、临时表空间SQL> select username, default_tablespace, temporary_tablespace from dba_users;查询系统资源文件名:SQL> select * from dba_profiles;资源文件类似表,一旦创建就会保存在数据库中。
SQL> select username, profile, default_tablespace, temporary_tablespace from dba_users; SQL> create profile common limitfailed_login_attempts 5idle_time 5;SQL> Alter user acc01 profile common;三、修改用户:SQL> Alter User 用户名Identified 口令Default Tablespace tablespaceTemporary Tablespace tablespaceProfile profileQuota integer/unlimited on tablespace;1、修改口令字:SQL>Alter user acc01 identified by "12345";2、修改用户缺省表空间:SQL> Alter user acc01 default tablespace users;3、修改用户临时表空间SQL> Alter user acc01 temporary tablespace temp_data;4、强制用户修改口令字:SQL> Alter user acc01 password expire;5、将用户加锁SQL> Alter user acc01 account lock; // 加锁SQL> Alter user acc01 account unlock; // 解锁四、删除用户SQL>drop user 用户名; //用户没有建任何实体SQL> drop user 用户名CASCADE; // 将用户及其所建实体全部删除*1. 当前正连接的用户不得删除。
五、监视用户:1、查询用户会话信息:SQL> select username, sid, serial#, machine from v$session;2、删除用户会话信息:SQL> Alter system kill session 'sid, serial#';3、查询用户SQL语句:SQL> select user_name, sql_text from v$open_cursor;Oracle 角色管理一、何为角色?我在前面的篇幅中说明权限和用户。