【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”。
oracle数据库权限机制
oracle数据库权限机制Oracle数据库权限机制引言:Oracle数据库是一种关系型数据库管理系统,拥有强大的权限控制机制,用于管理用户对数据库对象的访问权限。
权限机制是保护数据库安全性的重要组成部分,它可以确保只有经过授权的用户才能访问和操作数据库。
本文将介绍Oracle数据库的权限机制,包括用户、角色、权限和授权等方面的内容。
一、用户(User)在Oracle数据库中,用户是指具有登录和访问数据库的权限的个体或应用程序。
每个用户都有一个唯一的用户名和密码,用于身份验证和授权。
用户可以是数据库管理员(DBA)、普通用户或特定应用程序的用户。
当用户成功登录数据库时,Oracle将验证其用户名和密码,并为其分配一个会话(Session)。
二、角色(Role)角色是一种特殊的用户,它可以被分配给其他用户,以简化权限管理。
角色可以包含一组权限,然后将角色授予用户,从而避免为每个用户单独授权。
角色可以是预定义的(如CONNECT、RESOURCE)或自定义的。
预定义角色通常具有常用的权限集合,而自定义角色可以根据特定需求进行定义。
三、权限(Privilege)权限是指用户或角色对数据库对象的操作权限。
Oracle数据库提供了各种权限,涵盖了数据库管理、表和视图访问、存储过程和函数执行等不同的操作。
例如,CREATE TABLE权限允许用户创建表,SELECT权限允许用户查询表中的数据。
权限可以是系统权限,也可以是对象权限。
四、授权(Grant)授权是指将权限授予用户或角色的过程。
授权由数据库管理员(DBA)或具有相应权限的用户执行。
通过授权,用户或角色可以获得特定的权限,从而能够访问和操作数据库对象。
授权可以是直接授权,即将权限直接授予用户或角色;也可以是间接授权,即将角色授予用户,然后用户通过角色间接获得权限。
五、权限继承和级联授权在Oracle数据库中,权限可以通过继承和级联授权进行管理。
继承是指当用户从其他用户或角色继承权限时,自动获得这些权限。
oracle管理权限和角色
oracle管理权限和角色介绍这一部分主要看看oracle中如何管理权限和角色,权限和角色的区别在哪里。
当刚刚建立用户时,用户没有任何权限,也不能执行任何操作。
如果要执行某种特定的数据库操作,则必需为其授予系统的权限;如果用户要访问其它方案的对象,则必需为其授予对象的权限,为了简化权限的管理,可以使用角色。
权限:权限是指执行特定类型sql命令或是访问其它方案对象的权利,包括系统权限和对角权限两种。
系统权限介绍系统权限是指执行特定类型sql命令的权利,它用于控制用户可以执行的一个或是一组数据库操作。
比如当用户具有create table权限时,可以在其方案中建表,当用户具有create any table权限时,可以在任何方案中建表。
oracle提供了160多中系统权限。
常用的有:create session 连接数据库;create view 建视图;create procedure 建过程、函数、包;create cluster 建簇;create table 建表;create public synonym 建同义词;create trigger 建触发器;显示系统权限oracle提供了166系统权限,而且oracle的版本越高,提供的系统权限就越多,我们可以查询数据字典视图system_privilege_map,可以显示所有系统权限。
基本语法:select * from system_privilege_map order by name;oracle11GR2中提供了208个系统权限。
授予系统权限一般情况,授予系统权限是有dba完成的,如果用其它用户来授予系统权限,则要求用户必需具有grant any privilege的系统权限在授予系统权限时,可以带有with admin option选项,这样,被授予权限的用户或是角色还可以将该系统权限授予其它的用户或是角色。
为了让大家快速入门,我们举例说明:1、创建两个用户ken,tom初始阶段他们没有任何权限,如果登陆就会出错误的信息。
Oracle用户、权限和角色管理共77页文档
要启用口令文件认证,需要设置口令文件和配置上面的remote参数 默认只有sys可以使用口令文件。
密码文件丢失的情况
可以重建口令文件。
sysadmin也进入了口令文件中。
用户sysadmin也可以在数据库没有启动的情况下,使用口令文件进行认证了。
用户sys的密码存在口令文件和数据字典中,修改了密码以后,会同时更新两个 地方的密码。
用户管理的一些选项
1、唯一的用户名、字母开头、不包括特殊字符、最长30个
2、要有一种认证方式,通常采用密码认证,也就是登录时提供用户名和密码
3、默认表空间
Oracle10g中定义了一个数据库级别的默认表空间,如果用户没有定 义默认表空间,那么就使用这个作为自己的默认表空间,10g以前,如果出现 这种情况,那么就是用system表空间,这显然不合理,因此建立一个数据库 级别的表空间还是很有意义的
看一下外部认证(操作系统认证的例子)
一个操作系统用户的账号是ora,那么在数据库里面需要建立一个用户叫做 ops$ora,这个用户登陆操作系统以后,就可以直接登陆数据库了。因为操作 系统已经认证了这个用户。
CREATE USER "OPS$ORA" PROFILE "DEFAULT" IDENTIFIED EXTERNALLY DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK GRANT "CONNECT" TO "OPS$ORA"
上面的认证需要我们的用户登陆Oracle所在的数据库服务器上。
是否使用操作系统认证,还取决于一个设置
Oracle用户、对象权限、系统权限
--Oracle用户、对象权限、系统权限--================================一、用户与模式用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象SYSTEM用户,缺省始终创建,且未被锁定,可以访问数据库内的所有对象模式(schema):是某个用户拥有所有对象的集合。
具有创建对象权限并创建了对象的用户称为拥有某个模式注意:创建数据库对象(视图,表等)的任一用户都拥有一个以该用户名称开头的模式,且被视为模式用户二、创建及修改用户条件:需要具有创建用户的权限,如sys,system,sysdba,dba role等语法:CREATEUSER userIDENTIF IED {BY passwor d | EXTERNA LLY | GLOBALL Y AS externa l name } [DEFAULT TABLESP ACE tablesp ace_na me][TEMPORA RY TABLESP ACE tablesp ace_na me][QUOTA {n {[K|M] | UNLIMIT ED } ON tablesp ace_na meQUOTA {n {[k|M] | UNLIMIT ED } ON tablesp ace_na me ... ][PASSWOR D EXPIRE][ACCOUNT { LOCK | UNLOCK}][PROFILE { profile_name| DEFAULT }]eg:CREATEUSER robinso n IDENTIF IED BY tiger;--省略了DEFAULT TABLESP ACE和TE MPORAR Y TABLESP ACE 时,则由database_pr operti es中对应的参数确定SQL>SELECTpropert y_name,propert y_valu e FROMdatabas e_prop erties WHERE propert y_name LIKE'DEFAULT%';PROPERT Y_NAME PROPERT Y_VALU E--------------------------------------------------------------------------------DEFAULT_TEMP_TABLES PACE TEMPDEFAULT_PERMA NENT_T ABLESP ACE USERSDEFAULT_TBS_T YPE SMALLFI LE更多关于表空间的请参考:Oracle表空间与数据文件1.修改用户修改用户的语法同创建用户,仅仅讲关键字c reate替换为alter,alter user可以修改除用户名之外的任一属性ALTER USER robinso n ACCOUNT LOCK;2.修改密码DBA 可以创建用户和修改密码用户本人可以使用ALTER USER 语句修改密码SQL>ALTER robinso n IDENTIF IED BY newpass word;3.删除用户:DROP USER usernam e [CASCADE]CASECAD E 连同用户创建的对象一并删除,如果该用户创建了对象,要加CASCADE删除,否则删除不掉另外,不能删除当前正在与ORAC LE服务器相连的用户。
oracle创建用户、授权及角色管理
oracle创建⽤户、授权及⾓⾊管理oracle⽤户的概念对于Oracle数据库⾄关重要,在现实环境当中⼀个服务器⼀般只会安装⼀个Oracle实例,⼀个Oracle ⽤户代表着⼀个⽤户群,他们通过该⽤户登录数据库,进⾏数据库对象的创建、查询等开发。
每⼀个⽤户对应着该⽤户下的N多对象,因此,在实际项⽬开发过程中,不同的项⽬组使⽤不同的Oracle⽤户进⾏开发,不相互⼲扰。
也可以理解为⼀个Oracle⽤户既是⼀个业务模块,这些⽤户群构成⼀个完整的业务系统,不同模块间的关联可以通过Oracle⽤户的权限来控制,来获取其它业务模块的数据和操作其它业务模块的某些对象。
⼀、创建⽤户CREATE USER TEST1--⽤户名IDENTIFIED BY "test1"--密码ACCOUNT UNLOCK; -- 账户是否解锁(LOCK:锁定、UNLOCK解锁)sys;//系统管理员,拥有最⾼权限system;//本地管理员,次⾼权限scott;//普通⽤户,密码默认为tiger,默认未解锁sys;//系统管理员,拥有最⾼权限system;//本地管理员,次⾼权限scott;//普通⽤户,密码默认为tiger,默认未解锁⼆、登陆sqlplus / as sysdba;//登陆sys帐户sqlplus sys as sysdba;//同上sqlplus scott/tiger;//登陆普通⽤户scottsqlplus / as sysdba;//登陆sys帐户sqlplus sys as sysdba;//同上sqlplus scott/tiger;//登陆普通⽤户scott三、管理⽤户create user zhangsan;//在管理员帐户下,创建⽤户zhangsanalert user scott identified by tiger;//修改密码create user zhangsan;//在管理员帐户下,创建⽤户zhangsanalert user scott identified by tiger;//修改密码四,授予权限1、默认的普通⽤户scott默认未解锁,不能进⾏那个使⽤,新建的⽤户也没有任何权限,必须授予权限/*管理员授权*/grant create session to zhangsan;//授予zhangsan⽤户创建session的权限,即登陆权限grant unlimited session to zhangsan;//授予zhangsan⽤户使⽤表空间的权限grant create table to zhangsan;//授予创建表的权限grante drop table to zhangsan;//授予删除表的权限grant insert table to zhangsan;//插⼊表的权限grant update table to zhangsan;//修改表的权限grant all to public;//这条⽐较重要,授予所有权限(all)给所有⽤户(public)/*管理员授权*/grant create session to zhangsan;//授予zhangsan⽤户创建session的权限,即登陆权限grant unlimited session to zhangsan;//授予zhangsan⽤户使⽤表空间的权限grant create table to zhangsan;//授予创建表的权限grante drop table to zhangsan;//授予删除表的权限grant insert table to zhangsan;//插⼊表的权限grant update table to zhangsan;//修改表的权限grant all to public;//这条⽐较重要,授予所有权限(all)给所有⽤户(public)2、oralce对权限管理⽐较严谨,普通⽤户之间也是默认不能互相访问的,需要互相授权/*oralce对权限管理⽐较严谨,普通⽤户之间也是默认不能互相访问的*/grant select on tablename to zhangsan;//授予zhangsan⽤户查看指定表的权限grant drop on tablename to zhangsan;//授予删除表的权限grant insert on tablename to zhangsan;//授予插⼊的权限grant update on tablename to zhangsan;//授予修改表的权限grant insert(id) on tablename to zhangsan;grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插⼊和修改权限,注意,只能是insert和update grant alert all table to zhangsan;//授予zhangsan⽤户alert任意表的权限/*oralce对权限管理⽐较严谨,普通⽤户之间也是默认不能互相访问的*/grant select on tablename to zhangsan;//授予zhangsan⽤户查看指定表的权限grant drop on tablename to zhangsan;//授予删除表的权限grant insert on tablename to zhangsan;//授予插⼊的权限grant update on tablename to zhangsan;//授予修改表的权限grant insert(id) on tablename to zhangsan;grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插⼊和修改权限,注意,只能是insert和update grant alert all table to zhangsan;//授予zhangsan⽤户alert任意表的权限五、撤销权限基本语法同grant,关键字为revoke基本语法同grant,关键字为revoke六、查看权限select * from user_sys_privs;//查看当前⽤户所有权限select * from user_tab_privs;//查看所⽤⽤户对表的权限select * from user_sys_privs;//查看当前⽤户所有权限select * from user_tab_privs;//查看所⽤⽤户对表的权限七、操作表的⽤户的表/*需要在表名前加上⽤户名,如下*/select * from zhangsan.tablename/*需要在表名前加上⽤户名,如下*/select * from zhangsan.tablename⼋、权限传递即⽤户A将权限授予B,B可以将操作的权限再授予C,命令如下:grant alert table on tablename to zhangsan with admin option;//关键字 with admin optiongrant alert table on tablename to zhangsan with grant option;//关键字 with grant option效果和admin类似grant alert table on tablename to zhangsan with admin option;//关键字 with admin optiongrant alert table on tablename to zhangsan with grant option;//关键字 with grant option效果和admin类似九、⾓⾊⾓⾊即权限的集合,可以把⼀个⾓⾊授予给⽤户create role myrole;//创建⾓⾊grant create session to myrole;//将创建session的权限授予myrolegrant myrole to zhangsan;//授予zhangsan⽤户myrole的⾓⾊drop role myrole;删除⾓⾊/*但是有些权限是不能授予给⾓⾊的,⽐如unlimited tablespace和any关键字*/转载:;。
Oracle_角色_权限具体说明
Oracle_⾓⾊_权限具体说明⼀、Oracle内置⾓⾊connect与resource的权限grant connect,resource to user;CONNECT⾓⾊: --是授予终于⽤户的典型权利,最主要的ALTER SESSION --改动会话CREATE CLUSTER --建⽴聚簇CREATE DATABASE LINK --建⽴数据库链接CREATE SEQUENCE --建⽴序列CREATE SESSION --建⽴会话CREATE SYNONYM --建⽴同义词CREATE VIEW --建⽴视图RESOURCE ⾓⾊: --是授予开发者的CREATE CLUSTER --建⽴聚簇CREATE PROCEDURE --建⽴过程CREATE SEQUENCE --建⽴序列CREATE TABLE --建表CREATE TRIGGER --建⽴触发器CREATE TYPE --建⽴类型从dba_sys_privs⾥能够查到(注意这⾥必须以DBA⾓⾊登录):select grantee,privilege from dba_sys_privswhere grantee='RESOURCE' order by privilege;=================================================⼀、何为⾓⾊?在前⾯的篇幅中说明权限和⽤户。
慢慢的在使⽤中你会发现⼀个问题:假设有⼀组⼈,他们的所需的权限是⼀样的,当对他们的权限进⾏管理的时候会⾮常不⽅便。
由于你要对这组中的每⼀个⽤户的权限都进⾏管理。
有⼀个⾮常好的解决的⽅法就是:⾓⾊。
⾓⾊是⼀组权限的集合,将⾓⾊赋给⼀个⽤户,这个⽤户就拥有了这个⾓⾊中的全部权限。
那么上述问题就⾮常优点理了。
仅仅要第⼀次将⾓⾊赋给这⼀组⽤户,接下来就仅仅要针对⾓⾊进⾏管理就能够了。
以上是⾓⾊的⼀个典型⽤途。
Oracle中sys和system用户、系统权限和角色的区别
Oracle中sys和system⽤户、系统权限和⾓⾊的区别1)最重要的区别,存储的数据的重要性不同【sys】所有oracle的数据字典的基表和视图都存放在sys⽤户中,这些基表和视图对于oracle的运⾏是⾄关重要的,由数据库⾃⼰维护,任何⽤户都不能⼿动更改。
sys⽤户拥有dba,sysdba,sysoper等⾓⾊或权限,是oracle权限最⾼的⽤户。
【system】⽤户⽤于存放次⼀级的内部数据,如oracle的⼀些特性或⼯具的管理信息。
system⽤户拥有普通dba⾓⾊权限。
2)其次的区别,权限的不同。
【system】⽤户只能⽤normal⾝份登陆em,除⾮你对它授予了sysdba的系统权限或者syspoer系统权限。
【sys】⽤户具有“SYSDBA”或者“SYSOPER”系统权限,登陆em也只能⽤这两个⾝份,不能⽤normal。
以sys⽤户登陆Oracle,执⾏select * from V_$PWFILE_USERS;可查询到具有sysdba权限的⽤户,如:复制代码代码如下:SQL> select * from V_$PWFILE_USERS; USERNAME SYSDBA SYSOPER SYS TRUE TRUESysdba和sysoper两个系统权限区别normal 、sysdba、 sysoper有什么区别normal 是普通⽤户另外两个,你考察他们所具有的权限就知道了sysdba拥有最⾼的系统权限,登陆后是 syssysoper主要⽤来启动、关闭数据库,sysoper 登陆后⽤户是 publicsysdba和sysoper属于system privilege,也称为administrative privilege,拥有例如数据库开启关闭之类⼀些系统管理级别的权限sysdba和sysoper具体的权限可以看下表:oracle <wbr>sys和system⽤户区别system如果正常登录,它其实就是⼀个普通的dba⽤户,但是如果以as sysdba登录,其结果实际上它是作为sys⽤户登录的,这⼀点类似Linux⾥⾯的sudo的感觉,从登录信息⾥⾯我们可以看出来。
- 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 角色管理一、何为角色?我在前面的篇幅中说明权限和用户。