1.一、权限管理是Oracle的精华,不一样用户登陆到同一数据库中,可能看到不一样数量的表,拥有不一样的权限。Oracle 的权限分为系统权限和数据对象权限,共一百多种。若是把Oracle数据库看作仓库,表空间至关于仓库中的库房,数据表就是存放在仓库库房中的货品。用户至关于仓库管理员,仓库管理员能够管理一个或多个仓库库房,但仓库管理员只属于一个仓库。(做为SqlServer用户,表空间相似SqlServer中的数据库,sys/system用户相似SqlServer中的sa用户)html
1.二、Oracle默认有三个用户system 、 sys 、 scott。sys和system属于系统管理员用户,也是Oracle中权限很高的用户(sys权限要更高于system),scott是默认普通用户,scott的默认密码是tiger。sql
1.三、Oracle关于用户常见问题;数据库
1.3.一、sys不能用normal权限登陆,仅能用sysdba和sysoper权限登陆。oracle
1.3.二、system不能用sysoper权限登陆,仅能用normal和sysdba权限登陆。ide
1.3.三、scott用户默认是锁定的,须要解锁才能使用。(scott默认密码是tiger,解锁后可自行修改密码)flex
1.3.四、解锁scott用户,登陆sqlplus(normal权限登陆便可)后用 alter user scott account unlock; 语句解锁(注意最后有分号结尾)spa
激活scott用户后,首次登陆会提示要求修改密码,默认密码 tiger 不能使用scott。3d
2.一、使用 PL/SQL 会发现登陆的时候【链接为】有三个选项:Normal、SYSDBA、SYSOPER。这是用户选择以什么身份对数据库进行操做,能够看作一个仓库管理员以什么职位对仓库货品进行管理。code
2.二、一个用户能够有多个身份,就比如在一家公司一我的能够身兼数职,而登陆数据库时选择的 Normal、SYSDBA、SYSOPER 就是选择以什么职位对数据库进行操做。orm
2.三、以前提到,Oracle默认用户SYS能够用 SYSDBA和SYSOPER链接,用户SYSTEM能够用SYSDBA和Normal链接,用户scott仅能用Normal链接;身份和角色是多对多的关系,
2.四、三种身份权限,详见下表
其中SYS用户拥有最高权限,SYS 是全部内部数据库表、结构、过程包、等拥有者,此外它还拥有 V$ 和数据字典视图,并建立全部封装的数据库角色(DBA,CONNECT,RESOURCE)。 SYS是一个惟一能访问特定内部数据字典的用户。
做为通常开发人员通常用Normal身份链接数据便可。
3.一、建立用户 create user [username] identified by [password];
3.二、修改用户密码 alter user [username] identified by [password];
3.三、修改用户状态(解锁或锁定),Oracle用户有两种状态 lock(锁定) 和 unlock(解锁) alter user [username] account [lock/unlock];
3.四、删除用户 drop user [username];
4.一、 权限就是在数据库中执行一些操做的权利,好比,登陆数据库,链接数据库,建立数据表等。角色是权限的集合,好比,角色A同时拥有登陆数据库,建立数据表的权限。举例,拿狼人杀来理解权限和角色的关系,把狼人杀中的行动拆分为权限大概有,天黑睁眼[权限]、查验身份[权限]、使用毒/解药[权限]、投票[权限]等,这些看作Oracle数据库中的权限;你们都知道狼人杀中普通村民晚上是要闭眼的,而特殊身份晚上有睁眼[权限],其中女巫[角色]拥有天黑睁眼[权限]和使用毒/解药[权限]还有投票[权限],那这三个[权限]的集合就是女巫[角色]。
4.1.一、Oracle的权限分为系统权限和对象权限;系统权限就是用户对整个数据库的范围内的操做权限,好比经常使用的建表,链接,建视图等权限,对象权限就是受权其余方案对象用户对本身方案对象的操做权限,好比经常使用增删改查操做。对象权限的通俗理解,把本身的数据库方案(本身的数据表)共享给其余用户操做使用的权限。
4.二、系统权限介绍、受权、回收
4.2.一、系统权限是指执行特定类型sql命令的权利。它用于控制用户能够执行的一个或是一组数据库操做。经常使用系统权限有:
4.2.二、查看当前Oracle版本的全部系统权限 select * from system_privilege_map order by name; (我目前安装的Oracle11g有208个系统权限)
4.2.三、给用户受权角色(或权限) grant [RoleName]|[PowerName] to [UserName];
(给用户【a_user】受权【创建数据库链接】和【建立数据表】权限)
4.2.四、回收权限 revoke [RoleName]|[PowerName] from [UserName];
4.三、对象权限介绍、受权、回收
4.3.一、对象权限指访问其它方案对象的权利,用户能够直接访问本身方案的对象,可是若是要访问别的方案的对象,则必须具备对象的权限。经常使用对象权限:
4.3.二、给用户受权角色(或权限) grant [PowerName]|[RoleName] on [b_UserName].[TableName] to [a_UserName];
受权用户 a_user 对 用户 b_user 下的 t_couse 表 [增、删、改、查] 权限
4.3.三、回收权限 revoke [PowerName]|[RoleName] on [b_UserName].[TableName] from [a_UserName];
撤销用户 a_user 对 用户 b_user 下的 t_couse 表 [增、删、改、查] 权限
4.四、角色(权限集合)
4.4.一、在对用户受权的时候会遇到多个权限须要受权给多个用户的状况。一个个权限分别受权给一个个用户显然效率很低,这种场景就须要用到角色。前面有说到,角色就会权限的集合。
4.4.二、预约义角色,Oracle已经提供了一些预约义角色,经常使用到的有 connect,resource,dba 三种角色;
4.4.2.一、connect角色:具备通常应用开发人员须要的大部分权限,当创建了一个用户后,多数状况下,只要给用户授予connect和resource角色就够了;
4.4.2.二、resource角色具备应用开发人员所须要的其它权限,好比创建存储过程,触发器等;
4.4.2.三、dba角色具备全部的系统权限,及with admin option选项,默认的dba用户为sys和system,它们能够将任何系统权限授予其余用户。可是要注意的是dba角色不具有sysdba和sysoper的特权(启动和关闭数据库);
4.4.三、建立角色,除了Oracle提供的预约义角色,咱们也能够本身建立角色
create role [RoleName] not identified; -- 不验证方式建立角色(没有密码验证) create role [Role] identified by [password]; -- 验证方式建立角色(激活角色时须要验证密码)
4.4.四、给角色受权,自定义建立的角色默认没有任何权限,建立角色后须要分配权限 (注意:分配系统权限时建议使用 system用户)
conn system/[password]; --链接system用户 grant [PowerName] to [RoleName] with admin option; --受权系统权限 conn scott/tiger@myoral; --链接对象用户 grant [PowerName] on scott.emp to [RoleName]; --受权对象权限
4.4.五、删除角色 drop role [RoleName];
引用资料:http://www.javashuo.com/article/p-qqfswfdn-cm.html
<<============================================================================================================================================>>