Oracle 用户、角色管理简介

by:授客 QQ1033553122

创建用户

形式1:创建名为testacc2的用户

CREATE USER testacc2

IDENTIFIED BY abc1234

DEFAULT TABLESPACE testtbs001

QUOTA 10M ON testtbs001

TEMPORARY TABLESPACE testtbs002

QUOTA 5M ON SYSTEM

PASSWORD EXPIRE;

说明:

1)testacc2:用户名

2)abc1234 :用户密码(大小写敏感

3)DEFAULT TABLESPACE testtbs001:指定在用户方案(schema)中创建的对象的默认表空间为testtbs001

说明:

1.如果不指定,则用户对象存储在数据库默认表空间中。如果没有为数据库指定默认表空间,那么用户对象将存储在SYSTEM表空间

2.限制:不能指定本地管理的临时表空间,包括undo表空间,或者字典管理的临时表空间作为用户默认表空间。

4)QUOTA 10M ON testtbs001:设置用户在指定表空间中testtbs001的可用配额

说明:

1.一个CREATE USER语句可有多个QUOTA子句。

2.QUOTA子句的限制:不能为临时表空间指定该子句

5)TEMPORARY TABLESPACE testtbs002:为用户临时段指定表空间或表空间组。这里指定临时表空间为testtbs002。

说明:

1. 如果不指定该语句,那么用户临时段存储在数据库默认的临时表空间中,或者没有为数据库指定默认表空间,那么存储在SYSTEM表空间中。

2. 如果指定的是表空间名,则表示用户的临时表空间

3. 如果指定是表空间组名,则表示用户可以在由表空间组名指定的表空间组中的任意表空间中存储临时表空间段

4.限制:表空间必须为临时表空间,且具有标准块大小;表空间不能是UNDO表空间或有自动段空间管理的表空间

6)PASSWORD EXPIRE:设置用户密码过期。这样,当用户登录数据库时,必须重新设置密码。

如下:

SQL> conn testacc2

Enter password:

ERROR:

ORA-28001: the password has expired

Changing password for testacc2

New password:

Retype new password:

ERROR:

ORA-01045: user TESTACC2 lacks CREATE SESSION privilege; logon denied

Password changed

Warning: You are no longer connected to ORACLE.

SQL> conn testacc2

Enter password:

ERROR:

ORA-01045: user TESTACC2 lacks CREATE SESSION privilege; logon denied

说明:提示错误是因为此时没有授予用户权限

形式2:创建名为testacc2的用户,在默认表空间中的可用配额无限制

CREATE USER testacc2

IDENTIFIED BY abc1234

DEFAULT TABLESPACE testtbs001

QUOTA UNLIMITED ON testtbs001

TEMPORARY TABLESPACE testtbs002

QUOTA 5M ON SYSTEM;

说明:

QUOTA UNLIMITED ON testtbs001:设置用户在指定表空间testtbs001中可用配额无限制

形式3:创建名为testacc2的用户,指定profile

CREATE USER sidney

IDENTIFIED BY out_standing1

DEFAULT TABLESPACE example

QUOTA 10M ON example

TEMPORARY TABLESPACE temp

QUOTA 5M ON system

PROFILE app_user

PASSWORD EXPIRE;

说明:  PROFILE app_user ,指定分配给用户的profile。profile限制用户可使用的数据库资源的数量。如果未指定,oracle会使用默认的profile.

注意:oracle推荐使用Database Resource Manager,而不是SQL profile来建立数据库资源限制。

参考连接:

http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_8003.htm#SQLRF01503

修改用户

形式1:修改用户口令为abc123

ALTER USER testacc2 IDENTIFIED BY abc123;

形式2:设置用户口令过期

ALTER USER testacc2 PASSWORD EXPIRE;

形式3:修改用户默认表空间为testbs01

ALTER USER testacc2 DEFAULT TABLESPACE testtbs01;

形式4:修改用户临时表空间为TEMP

ALTER USER testacc2 TEMPORARY TABLESPACE TEMP;

说明:如果要修改用户所在临时表空间组名,如下

ALTER USER username TEMPORARY TABLESPACE tablespace_group_name;

形式5:修改用户在表空间testtbs001中的配额为10M(注:如果无限制则设置QUOTA UNLIMITED

ALTER USER testacc2 QUOTA 10M ON testtbs001;

形式5:锁定用户、解锁用户

锁定

ALTER USER testacc2 ACCOUNT LOCK;

解锁

ALTER USER testacc2 ACCOUNT UNLOCK;

形式6:修改用户的默认角色

ALTER USER username DEFAULT ROLE option;

作用:指定登录时,授权给用户的默认角色。

选项可以是:

ALL:所有角色

ALL EXCEPT role_name:除角色role_name之外的所有角色

NONE:没任何角色

role_name:由role_name指定的角色

如下:

ALTER USER testacc2 DEFAULT ROLE ALL;

ALTER USER testacc2 DEFAULT ROLE ALL EXCEPT role_name;

ALTER USER testacc2 DEFAULT ROLE NONE;

说明:

以下情况不能使用上述语句:

a)  角色为未授权给用户的角色

b)  角色为通过其他角色授权给用户的角色

c)  角色为由外部服务(如操作系统)或Oracle Internet Directory管理的角色或者external service (such as the operating system), or by the

d)  由SET ROLE开启的角色,如密password-authenticated和secure application 角色

形式7:修改用户的profile文件

ALTER USER testacc2 PROFILE new_profile;

参考连接:

http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_4003.htm#SQLRF01103

 

 


创建角色

形式1:创建角色,不使用密码

CREATE ROLE test_role;

说明:被授予test_role角色的用户将继承授权给test_role角色的所有权限。

形式2:创建角色,并使用密码

CREATE ROLE test_role2
IDENTIFIED BY abc1234;

说明:使用了IDENTIFIED BY,被授予角色(例中为test_role2)的用户必须使用SET ROLE来激活角色:SET ROLE roel_name IDENTIFIED BY
role_password

参考连接:

http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_6012.htm#SQLRF01311

修改角色

CREATE ROLE test_role
IDENTIFIED BY abc123;

形式1:修改角色为不需要验证激活

ALTER ROLE test_role
NOT IDENTIFIED;

形式2:修改角色验证密码

ALTER ROLE test_role
IDENTIFIED BY abc1234;

注意:

如果NOT IDENTIFIED
角色已经被授权给其它角色,
则不能修改NOT IDENTIFIED
为IDENTIFIED

参考链接:

http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_2010.htm#SQLRF00815


用户授权

1.授予用户连接权限

GRANT CONNECT TO testacc2;

授予权限后,sqlplus连接

SQL> CONN testacc2

Enter password: #输入登录密码

Connected.

2.授予用户创建会话权限

GRANT CREATE SESSION
TO testacc2;

注意:用户如果需要登录oracle,必须有
CONNECT、CREATE SESSION的权限

3.授予用户系统权限

GRANT system_privillege TO
testacc2;

GRANT ALL PRIVILEGES
TO testacc2;

说明:ALL PRIVILEGES:代表表Table
18-1
中,除ANY DICTIONARY, ALTER DATABASE
LINK,和ALTER PUBLIC DATABASE
LINK权限外的所有系统权限

4.授予用户所有对象权限

GRANT object_privillege[(colument)]
ON object TO testacc2;

GRANT ALL [PRIVILEGES] ON object TO
username;

例:授予用户testacc2
test_table表上的所有权限

GRANT ALL ON test_table TO testacc2;

GRANT ALL PRIVILEGES
ON test_table TO testacc2;

说明:

1.ALL [PRIVILEGES],授予对象的所有权限给用户,授权者必须有该对象的GRANT OPTION权限.方案的所有者用户自动包含所有方案(schema)中所有对象的所有权限,且对每个对象都有GRANT OPTION权限。

2.被授权用户查询授权者用户方案下的对象时,必须加上方案名(通常为用户名),如下,加方案名testacc

SQL> SELECT * FROM
testacc.test_table;

no rows selected

否则,会提示ORA-00942: table or view does not
exist的错误

注:此处,表test_table为testacc用户所创建的

5.授予用户在某个表或视图的数据列上的权限

GRANT UPDATE(id) ON test_table  TO testacc2;

说明:仅在授予INSERT, REFERENCES,

或UPDATE权限时才可指数据列

6.授予用户权限,且被授予者拥有把权限授予其他人、角色的权限

GRANT SELECT, DELETE ON test_table TO testacc2

WITH GRANT OPTION;

说明:

授予用户testacc2对表test_table的查询,删除权限,WITH GRANT OPTION,使用户testacc2可把获取的权限再授予其他用户、角色

7.授予用户权限,被授权用户有管理权限

GRANT UPDATE ON test_table TO testacc2
WITH GRANT OPTION;

注意:WITH GRANT OPTION仅适用于角色、对象权限

8.授予用户角色

形式1:授予用户角色,不指定WITH ADMIN OPTION;

GRANT test_role TO testacc2;

形式2:授予用户角色,指定WITH ADMIN OPTION;

GRANT test_role2 TO testacc2
WITH ADMIN OPTION;

注意:

WITH ADMIN OPTION允许被授权用户:

1)授权角色、权限给其他角色、用户,GLOBAL角色除外

2)从其他用户、角色回收权限、角色

3)修改权限、角色

4)删除权限、角色

WITH ADMIN OPTION仅适用于角色,系统权限

9.授予所有用户权限

GRANT SELECT, UPDATE ON test_table TO public;

说明:public,代表所有用户

参考连接:

http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_9013.htm#SQLRF01603


回收权限、角色

形式1:回收某个、多个对象权限

REVOKE UPDATE ON test_table FROM testacc2;

REVOKE UPDATE,SELECT ON test_table
FROM testacc2;

形式2:回收所有对象权限

REVOKE ALL ON test_table FROM testacc2;

或者

REVOKE ALL PRIVILEGES ON
test_table FROM testacc2;

形式3:回收所有授予用户的系统权限

REVOKE ALL PRIVILEGES
FROM testacc2;

形式4:回收授予用户的某个、多个系统系统权限

REVOKE CONNECT FROM testacc2;

REVOKE CREATE ANY TABLE, CREATE TABLE FROM testacc2;

形式4:回收授权给用户的角色

REVOKE test_role FROM testacc2;

形式5:级联回收对象权限

REVOKE REFERENCES  ON test_table
FROM testacc2 CASCADE CONSTRAINTS;

说明:

CASCADE CONSTRAINTS,仅和移除REFERENCES或ALL [PRIVILEGES]对象权限相关.也就是说该语句的作用为:1.删除由testacc2所创建的,REFERENCES
指定的所有参照完整性约束外键约束;2.回收testacc2用户创建外键的权限

形式6:从多用户回收权限

REVOKE CREATE SESSION
FROM testacc2,testacc2

形式7:收回所有用户的权限

REVOKE SELECT, UPDATE ON test_table FROM public;

参考连接:

http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_9020.htm#SQLRF01609


删除用户

形式1:删除用户,不删除用户用户方案中包含的对象

DROP USER testacc2;

形式2:删除用户,并删除用户方案中包含的方案对象,比如表,视图等

DROP USER testacc2
CASCADE;

参考连接:

http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_9008.htm#SQLRF01811


删除权限

DROP ROLE test_role;

Oracle 用户、角色管理简介的更多相关文章

  1. oracle 用户的管理<二>

    oracle 用户的管理 创建用户 概述:在 oracle 中要创建一个新的用户使用 create user 语句,一般是具有 dba(数据库管理员)的权限才能使用. create user 用户名 ...

  2. Oracle 用户权限管理方法

    Oracle 用户权限管理方法 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最 ...

  3. 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

    系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)— ...

  4. 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理 【转】

    http://www.cnblogs.com/powertoolsteam/p/MVC_five.html 系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会 ...

  5. soanr - 企业用户角色管理

    首先sonar支持群组 即 支持企业角色权限管理,其次sonar支持单项目用户权限管理 即 外包,客户,外编人员用户权限管理. (视图内可看到源码) 按照 管路员.产品/项目管理.产品/项目开发.外包 ...

  6. Oracle 24角色管理

    了解什么是角色 Oracle角色(role)就是一组权限(或者说是权限的集合). 用户可以给角色赋予指定的权限,然后将角色赋给相应的用户. 三种标准的角色 connect(连接角色) 拥有connec ...

  7. oracle用户的管理

    用户登陆 sql>conn 用户名/密码 给用户修改密码 如果给自己修改密码可以直接使用 sql>password 用户名; 如果给别人修改密码则需要具有dba的权限,或是拥有alter ...

  8. 【转】 Oracle 用户权限管理方法

    sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最高权限 system;//本地管 ...

  9. oracle用户权限管理

    oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权 1.查看当前数据库所有用户: select * from all_users; 2.查看表所支持的权限: select ...

随机推荐

  1. PHP的语言构造器

    isset和empty看起来像是函数,我们也经常把它当作函数一样使用,但是实际上,它们是语言构造器. php中的语言构造器就相当于C中的预定义宏的意思,它属于php语言内部定义的关键词,不可以被修改, ...

  2. Redis笔记(3)多数据库实现

    1.前言 本章介绍redis的三种多服务实现方式,尽可能简单明了总结一下. 2.复制 复制也可以称为主从模式.假设有两个redis服务,一个在127.0.0.1:6379,一个在127.0.0.1:1 ...

  3. Apater适配器模式(结构型模式)

    1.概要 适配:即在不改变原有实现的基础上,将原先不适合的接口转换成适合的接口. what is Apater?适配,这个概念在生活中无处不在,比如你的iphone 4手机充电器坏了,这是时候只有一个 ...

  4. OwinHost

    新建ASP.NET MVC 项目. 引用包: install-package Microsoft.Owin.Host.SystemWeb 修改 public class Startup { publi ...

  5. Google Chrome Native Messaging开发实录(二)Chrome Extension扩展

    接上一篇<Google Chrome Native Messaging开发实录(一)背景介绍>的项目背景,话不多说,有关Chrome Extension介绍和文档就不展开了,直接上代码. ...

  6. 全网最全的Windows下Anaconda2 / Anaconda3里Python语言实现定时发送微信消息给好友或群里(图文详解)

    不多说,直接上干货! 缘由: (1)最近看到情侣零点送祝福,感觉还是很浪漫的事情,相信有很多人熬夜为了给爱的人送上零点祝福,但是有时等着等着就睡着了或者时间并不是卡的那么准就有点强迫症了,这是也许程序 ...

  7. logstash-1-安装配置

    centos logstash logstash logstash是什么呢, 他是一个数据管道, JRuby编写的运行在java虚拟机的具有收集, 分析和转发数据流功能的工具 特性: 安装 1), w ...

  8. MVC源码分析 - Action/Result 过滤器(续)

    上一篇 看到了Action/Result过滤器的执行顺序: OnActionExecuting -> Action -> OnActionExecuted -> OnResultEx ...

  9. JVM内存结构(转)

    所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问 ...

  10. MVC实现更新数据库的数据

    经过一系列MVC的练习,如数据库的数据显示,添加,删除等,还差一个功能,就是更新,那本次练习的是MVC对数据库的数据进行更新. 写好更新的存过程: 有了存储过程,可以写实体(Entity)的方法了.写 ...