oracle如何分权限,oracle权限管理

浅谈oracle数据库如何创建用户以及分配权限

oracle的用户权限要是详细说,那么可能要很久,毕竟oracle的管理都是用过用户实现的。

10年积累的成都网站制作、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有白朗免费网站建设让你可以放心的选择与我们合作。

(1)这里个人觉得最重要的是保护所在服务器的oracle用户(系统用户)的密码。并且不管是什么系统用户,就算是root,也不能随意修改才可以。毕竟本地登录的sqlplus / as sysdba就是dba权限,如果真的是这里出现问题,那么哭都来不及。

(2)dba用户有且只能有一个(用户名一定要毫不起眼,避免被猜出来,密码也要符合加密原则并且定期修改),这个用户要专人专用,绝对不能大面积给予该用户的密码,还是那句话权限太大。除了不得不利用dba身份进行的操作,其他事情一律不用这个用户,要当做这个用户不存在。

(3)其他用户权限,先说数据库的主要操作——增删改查,增是一个单独的用户,改删为一个用户或两个用户(这个权限也是严格控制的,因为一般来说),查为一个用户。感觉是不是很烦,一般也没有这么用的,不过如果真的要求严格,那么这是最好的办法。

(4)其他的就是关于表的分层管理(当然每层属于不同的用户或者每层分成几块,每块都是不同的用户),这样可以尽量避免因为权限导致的数据库问题。退一步说,就算出了问题,数据也是可以找回的。

(5)最后一个是每一个大面积分发的用户的授权都是针对表的,至于针对表空间等数据库系统层面的授权,则是由专门的用户由专门的人操作完成的。

ORACLE数据库中的权限和角色

ORACLE数据库中的权限和角色

Oracle数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的。DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现。权限就是用户可以执行某种操作的权利。而角色是为了方便DBA管理权限而引入的一个概念,它实际上是一个命名的权限集合。

1 权限

Oracle数据库有两种途径获得权限,它们分别为:

① DBA直接向用户授予权限。

② DBA将权限授予角色(一个命名的包含多个权限的集合),然后再将角色授予一个或多个用户。

使用角色能够更加方便和高效地对权限进行管理,所以DBA应该习惯于使用角色向用户进行授予权限,而不是直接向用户授予权限。

Oracle中的权限可以分为两类:

•系统权限

•对象权限

1.1 系统权限

系统权限是在数据库中执行某种操作,或者针对某一类的对象执行某种操作的权利。例如,在数据库中创建表空间的权利,或者在任何模式中创建表的权利,这些都属于系统权限。在Oracle9i中一共提供了60多种权限。

系统权限的权利很大,通常情况下:

① 只有DBA才应当拥有alter database系统权限,该权限允许用户对数据库物理结构和可用性进行修改。

② 应用程序开发者一般应该拥有Create Table、Create View和Create Type等系统权限,用于创建支持前端的数据库模式对象。

③ 普通用户一般只具有Create session系统权限(可以通过Connection角色获得),只有Create Session系统权限的用户才能连接到数据库

④ 只有具有Grant Any PRivilege系统权限用户,或者获取了具有With Admin Option选项的系统权限的用户,才能够成为其它用户授予权限。

1.2对象权限

对象权限是针对某个特定的模式对象执行操作的权利。只能针对模式对象来设置和管理对象权限。

对于模式对象:表、视图、序列、存储过程、存储函数、包都可以对象设置权限。不同类型模式对象具有不同的对象权限。比如,表、视图等对象具有查询(Select)、修改(Update)、删除(Delete)等对象权限,而存储过程、存储函数等对象则具有执行(Execute)等对象权限。

但是并不是所有的模式对象都可以设置对象权限。比如簇、索引、触发器以及数据库链接等模式就不具有对象权限。这些模式对象的访问控制是通过相应的.系统权限来实现的,比如,要对索引进行修改,必须拥有Alter Any Index系统权限。

用户自动拥有他的模式中所有对象的全部对象权限,他可以将这些对象权限授予其他的用户或角色。比如,Test1用户创建了一个表Table1,在没有授权的情况下,用户Test2不能查询、修改、删除这个表。如果Test1将ETP表的Select对象权限授予了Test2,则该用户就可以查询Table1表了。如果在为其它用户授予对象权限时用了With Grant Option选项,被授予权限的用户还可以将这个权限在授予其他用户。

2 角色

2.1角色的概念

角色就是多个相关权限的命名集合。通过角色来进行对用户授予权限,可以大大简化DBA的工作量。比如,处于统一部门中的30多个用户都需要访问数据库中的一系列表,DBA可以将这些表的中合适的对象权限授予一个角色,然后在把这个角色授予这些用户,这样进行操作要比为没有用户进行授权要便捷多了,而且要对这些用户的权限进行统一修改,只需要修改角色的权限即可。

2.2角色的优点

通过角色为用户授予权限,而不是直接向各个用户授权,具有以下优点:

•简化权限管理 DBA将用户群分类,然后为每一类用户创建角色,并将该角色授予这类用户所需要的权限,最后在将改角色授予该类中的各个用户。这样不仅简化了授权操作,而且当这类用户的权限需求发生改变时,只需要把角色的权限进行改动,而不必修改每一位用户的权限。

•动态权限管理 角色可以被禁用或激活。当角色被禁止使用时,拥有该角色的用户不再拥有授予改角色的权限了。这样就可以对多个用户的权限进行动态控制了。

•灵活的编程能力 角色是存储在数据字典中的,并且可以为角色设置口令。这样就能够在应用程序中对角色进行控制。比如禁用或者激活等操作。

下面以Oracle9i为例,给出具体的实现用户授权:

(1)设定各种角色,及其权限

CREATE ROLE checkerrole DENTIFIEDBYxm361001;

CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;

GRANT SELECT,UPDATE ON

account.paytable TO checkerrole;

GRANT CONNECT TO defaultrole;

(2)创建用户

CREATE USER xiaoli IDENTIFIEDBY xiaoli;

(3)授权

GRANT checkerrole TO xiaoli;

GRANT defaultrole TO xiaoli;

(4)设定用户缺省的角色

ALTER USER xiaoli DEFAULTROLE defaultrole;

(5)注册过程

CONNECT xiaoli/xiaoli@oracle

此时用户只有其缺省角色的权限。

(6)激活角色

SET ROLE checkerrole IDENTIFIEDBY xm361001;

----操作成功后,xiaoli拥有checkerrole的权限。

----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全

;

如何控制oracle用户的权限

权限允许用户访问属于其它用户的对象或执行程序,

ORACLE系统提供权限:Object 对象级、System 系统级

1.系统权限(系统权限是对用户而言):

DBA拥有最高的系统权限:

1,可以创建用户

语法:create user username identified by password;

例如:create user briup identified by briup;

当用户创建成功之后,此用户什么权限都没有,甚至不能登录数据库。

2. 赋予权限:

一个用户应该具有的基本权限包含:

CREATE SESSION

CREATE TABLE

CREATE SEQUENCE

CREATE VIEW

CREATE PROCEDURE

如果有多个用户他们都具有相同的权限(create session,create table,create sequence),赋予权限的动作过于麻烦,要给每个用户分别制定这些权限,因此oracle提出角色的概念,可以将权限赋值给角色,然后再将角色赋值给用户。

例如,我们当初在进行操作时写的:

grant resource,connect to briup;

此时resource,connect就是角色。

查询resource,connect 具有哪些权限可以使用:

select privilege,role

from role_sys_privs

where role = 'CONNECT' or role ='RESOURCE';

语法:

grant xxxx to user_name ;

例如:

grant create view to briup;

3.回收权限

语法:revoke xxx from user_name;

例如:

revoke create view from briup;

4.修改密码:

语法:alter user xxx identified by xxxx;

例如:

alert user briup identified by briup;

5.删除用户:

语法:drop user username [cascade];

note: cascade:当用户下有表的时候,必须使用cascade级联删除。

例如: drop user test cascade;

2.对象权限(针对对象,类似表对象等):

对象权限:select, update, insert, alter, index, delete, all //all包括所有权限

对象的 拥有者拥有所有的权限。

1.给用户赋予操作对象的权限:

GRANT object_priv [(columns)]

ON object

TO {user|role|PUBLIC}

[WITH GRANT OPTION]; //允许分配到权限的用户继续将权限分配给其它用户

例如:

grant select on s_emp to jd1613;

给jd1613用户赋予在s_emp表上进行查询的权利。

grant update(id) on s_emp to jd1613;

给jd1613赋予能够更新s_emp表上id列的权限。

2.回收权限:同系统权限。

语法:revoke xxx on obj from user;

note: 通过with grant option赋予额权限也会被回收。

例如:

revoke select , update on s_emp from jd1613;

3.创建同义词: 相当于给对象起别名

语法:create[public] synonym sy_name for obje_name;

note:只有dba才有权利创建public的同义词

例如:

create synonym emp for s_emp;

4.删除同义词:

语法: drop synonym syn_name;

例如:

drop synonym emp;

5.导出数据库

exp,imp不属于sqlplus的命令,所以不是在sqlplus终端执行的。

系统终端:exp userid=briup/briup full=y file=briup.dmp

导入:imp userid=briup/briup full=y file=briup.dmp;

oracle 创建用户分配权限

创建用户一般用sysdba身份登录才可以

create

user

wa

identified

by

passwords

--wa是用户名

passwords

是密码

grant

connect

to

wa

--将连接角色的权限

赋给

wa用户

grant

resource

to

wa

--将resource角色的权限赋给

wa用户

用户会有CREATE

CLUSTER

CREATE

INDEXTYPE

CREATE

OPERATOR,CREATE

PROCEDURE,CREATE

SEQUENCE,CREATE

TABLE,CREATE

TRIGGER,CREATE

TYPE

等权限

oracle 中权限等级是怎样的?

oracle中权限等级,感觉这种说法挺别扭的...

首先,说一下oracle对权限的定义:

权限(privilege)指运行特定 SQL 语句的权利,或访问其他用户对象的权利。分为系统权限和方案对象权限

系统权限:是执行某一特定操作,或对某类方案对象执行操作的权利

方案对象权限:是对某一方案对象执行特定操作的权利。

只有为数据库用户授权(grant)后,用户才能执行其所需的数据库操作

这里提到的用户,也就是常说的角色。由于角色能使权限管理更简单更规范,一般来说管理员应首先将权限赋予角色,而非直接赋予具体的用户

这里,我们说说角色的定义:是一组命名的相关权限(related privilege),管理员可以将角色所代表的一组权限赋予用户或其他角色,从而简化权限的管理与控制。在一个数据库内,角色名必须唯一。

创建角色的目的:

* 管理数据库应用程序的权限

* 管理用户组的权限

从上面可以看出,数据库是通过对角色的控制,来实现权限分配的

racle 数据库在密码文件(password file)中记录被授予了 SYSDBA 及 SYSOPER 权限的数据库用户,这些权限能够执行以下操作:

# 具备 SYSOPER 权限的数据库管理员能够执行 STARTUP,SHUTDOWN,ALTER DATABASE OPEN/MOUNT,ALTER DATABASE BACKUP,ARCHIVE LOG,及 RECOVER 命令,并具备 RESTRICTED SESSION 权限。

# 具备 SYSDBA 权限的数据库管理员拥有所有系统权限(system privilege)及权限的 ADMIN OPTION 选项,还拥有 SYSOPER 所拥有的全部系统权限。此外,能够执行 CREATE DATABASE 命令,并能够执行基于时间的恢复操作(time-based recovery)

如何给oracle用户分配权限

在Oracle 11g中含有200多种系统特权,并且所有这些系统特权均被列举在SYSTEM_PRIVILEGE_MAP数据目录视图中。授权操作使用GRANT命令,其语法格式如下:

grant sys_privi | role to user | role | public [with admin option]

参数说明如下:

sys_privi:表示Oracle系统权限,系统权限是一组约定的保留字。比如,若能够创建表,则为“CREATE TABLE”。

role:角色,关于角色会在后面小节中介绍。

user:具体的用户名,或者是一些列的用户名。

public:保留字,代表Oracle系统的所有用户。

with admin option:表示被授权者可以再将权限授予另外的用户。

—-为用户east授予连接和开发系统权限,并尝试使用east连接数据库。


当前题目:oracle如何分权限,oracle权限管理
网站网址:http://azwzsj.com/article/phiiij.html