Oracle 用户、权限、角色管理

   01.概念

       用户:对数据库的访问需要以适当的身份通过验证,这就是用户的作用;每个Oracle用户都有自己的用户名和密码,并且拥有他们所创建的任意表、视图和其他资源,需要注意的是新创建的用户连最基本的访问登入Oracle的权限都没有,所以后续需要授予不同的权限和角色来达成不同的操作目的;

        实体权限:权限一般分为系统权限和对象权限,系统权限可以通俗地理解为将数据库对象从无到有或从有到无的创建操作,比如说创建和删除表、视图、存储过程、session等这些操作都可以认为是系统权限;对象权限赋予了你在不同的数据库对象上操作的能力,比如DELETE权限允许你对表和视图删除行,SELETE权限允许你对表、视图、序列等进行查询操作! 

        角色:如果多个新建用户需要后续赋予10不等的不同权限,一般方法是需要将10个不等的权限分别列出来进行授予,不但麻烦而且重用性不高,角色的出现就是为了解决这个问题。Oracle角色是一组权限的集合。正常情况下我们可以授予角色一些权限,然后将角色分配给适当的用户;

   02, 权限

         001,权限分类          

          DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

          RESOURCE:拥有Resource权限的用户只可以创建对象,不可以创建数据库结构。

          CONNECT:拥有Connect权限的用户可以登录Oracle,不可以创建实体,不可以创建数据库结构。

          002,权限内容

          实体权限:  select, update, insert, alter, index, delete --->all 代表所有权限

            execute -->执行存储过程权限

           授权为grant,回收为Revoke

    03,用户

         001,用户pfile创建         

SQL> create profile kingle limit // kingle为资源文件名
FAILED_LOGIN_ATTEMPTS 3 //指定锁定用户的登录失败次数
PASSWORD_LOCK_TIME 5 //指定用户被锁定天数
PASSWORD_LIFE_TIME 30 //指定口令可用天数

          002,创建用户       

 Create User username   用户名字
Identified by password 口令
Default Tablespace tablespace 表空间
Temporary Tablespace tablespace 临时表空间
Profile profile
Quota integer/unlimited on tablespace; 创建实例: Create user kingle
identified by kingle
default tablespace users
temporary tablespace temp
profile test
quota 50m on users;

         003,修改用户

             0001,修改用户排至文件

                 Alter user kingle profile kingle2;

            0002,修改口令

                 Alter user kingle identified by "12345";

            0003,修改用户缺省表空间

                 Alter user kingle default tablespace users; 

           0004,修改用户临4时表空间

                 Alter user kingle temporary tablespace temp_data;

           0005,用户加解锁

                SQL> Alter user kingle account lock; // 加锁

                SQL> Alter user kingle account unlock; // 解锁

         004,删除用户

SQL>drop user 用户名; //用户没有建任何实体
SQL> drop user 用户名 CASCADE; // 将用户及其所建实体全部删除

           005,授予用户权限

SQL> grant connect, resource to kingle;

           006,查看用户权限   

select * from dba_sys_privs where grantee='kingle';

         007,权限回收

Revoke connect, resource from kingle

   04,角色管理

      01,角色

        角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。    

     02,预定义角色

         预定义角色是在数据库安装后,系统自动创建的一些常用的角色。

          CONNECT, RESOURCE, DBA 

这些预定义角色主要是为了向后兼容。其主要是用于数据库管理。oracle建议用户自己设计数
据库管理和安全的权限规划,而不要简单的使用这些预定角色。将来的版本中这些角色可能不会
作为预定义角色。

           DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE

这些角色主要用于访问数据字典视图和包

          EXP_FULL_DATABASE, IMP_FULL_DATABASE

这两个角色用于数据导入导出工具的使用。

          AQ_USER_ROLE, AQ_ADMINISTRATOR_ROLE

AQ:Advanced Query。这两个角色用于oracle高级查询功能。

          SNMPAGENT

用于oracle enterprise manager和Intelligent Agent

          RECOVERY_CATALOG_OWNER

用于创建拥有恢复库的用户。关于恢复库的信息,参考oracle文档《Oracle9i User-Managed Backup and Recovery Guide》

      03,操作 

建一个角色
sql>create role role1;
授权给角色
sql>grant create any table,create procedure to role1;
授予角色给用户
sql>grant role1 to user1;
查看角色所包含的权限
sql>select * from role_sys_privs;
创建带有口令以角色(在生效带有口令的角色时必须提供口令)
sql>create role role1 identified by 123456;
修改角色:是否需要口令
sql>alter role role1 not identified;
sql>alter role role1 identified by password1; 设置当前用户要生效的角色
(注:角色的生效是一个什么概念呢?假设用户a有b1,b2,b3三个角色,那么如果b1未生效,则b1所包含的权限对于a来讲是不拥有的,只有角色生效了,角色内的权限才作用于用户,最大可生效角色数由参数MAX_ENABLED_ROLES设定;在用户登录后,oracle将所有直接赋给用户的权限和用户默认角色中的权限赋给用户。) sql>set role role1;//使role1生效
sql>set role role,role2;//使role1,role2生效
sql>set role role1 identified by password1;//使用带有口令的role1生效
sql>set role all;//使用该用户的所有角色生效
sql>set role none;//设置所有角色失效
sql>set role all except role1;//除role1外的该用户的所有其它角色生效。
sql>select * from SESSION_ROLES;//查看当前用户的生效的角色。 修改指定用户,设置其默认角色
sql>alter user user1 default role role1;
sql>alter user user1 default role all except role1;
详见oracle参考文档 删除角色
sql>drop role role1;
角色删除后,原来拥用该角色的用户就不再拥有该角色了,相应的权限也就没有了

oracle 基础知识(一)的更多相关文章

  1. 图说Oracle基础知识(一)

    本文主要对Oralce数据库操作的基础知识进行一下梳理,以便进行归纳总结.适用于未使用过Oracle数据库的读者,或需要学习Oracle数据库方面的基础知识.如有不足之处,还请指正. 关于SQL介绍的 ...

  2. Oracle基础知识汇总一

    Oracle基础知识 以下内容为本人的学习笔记,如需要转载,请声明原文链接   https://www.cnblogs.com/lyh1024/p/16720759.html oracle工具: SQ ...

  3. Oracle 基础知识入门

    前记: 近来项目用到Oracle数据库,大学学了点,后面基本忘记得差不多了,虽然基本语法跟sql 差不多,但是oracle知识是非常多的. 这里简单说点基础知识,希望后面补上更多的关于ORacle知识 ...

  4. Oracle基础知识笔记(10) 约束

    表尽管建立完毕了,可是表中的数据是否合法并不能有所检查,而假设要想针对于表中的数据做一些过滤的话,则能够通过约束完毕,约束的主要功能是保证表中的数据合法性,依照约束的分类,一共同拥有五种约束:非空约束 ...

  5. 2008-03-18 22:58 oracle基础知识小结

    oracle 数据类型: 字段类型                 中文说明                                                  限制条件         ...

  6. oracle基础知识过一遍(原创)

    用户.角色.权限.表空间 create tablespace test1_tablespace datafile ‘test1file.dbf’ size 10m; create temporary  ...

  7. oracle 基础知识(七)----动态性能视图

    一,动态性能视图介绍 动态性能视图属于数据字典,系统管理员用户 SYS 可以访问它们.在数据库打开和使用时不断进行更新,而且它们的内容主要与性能有关.虽然这些视图很像普通的数据库表,但它们不允许用户直 ...

  8. oracle 基础知识(三)

    一.删除oracle 进入注册表到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome91TNSListener Ima ...

  9. oracle基础知识语法大全

    ORACLE支持五种类型的完整性约束NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值.CHECK (检查)--检查在约束中 ...

  10. oracle基础知识及语法

    ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)--检查在约 ...

随机推荐

  1. URAL 1748. The Most Complex Number(反素数)

    题目链接 题意 :给你一个n,让你找出小于等于n的数中因子个数最多的那个数,并且输出因子个数,如果有多个答案,输出数最小的那个 思路 : 官方题解 : (1)此题最容易想到的是穷举,但是肯定超时. ( ...

  2. 在IE11(Win8)中检查up6.2配置

      1.按F12,打开调试模式    2.打开调试程序选项卡 说明:在调试程序选项卡中可看到IE加载的脚本信息是否正确.因为IE有缓存,导致脚本有时不是最新的.    3.打开脚本,up6.js   ...

  3. C#调用OCX控件的常用方法[转]

    小伙伴们在使用ICP提供的各种能力进行集成开发时常常会遇到一些技术上的困扰,例如ICP中很多接口是通过OCX控件的方式提供的,如何调用这些接口,就成了一个不大不小的问题,毕竟开发指南上可没这些内容啊~ ...

  4. .properties文件的使用

    在很多项目中我们都会使用到.properties文件对我们的项目进行配置,今天就介绍一下.properties文件在项目中的使用: 如下图,我们项目中有一个名为project.properties的p ...

  5. openfiler的介绍与使用

    一. Openfiler简介 Openfiler 能把标准x86/64架构的系统变成一个强大的NAS.SAN存储和IP存储网关,为管理员提供一个强大的管理平台,并能能应付未来的存储需求.依赖如VMwa ...

  6. 什么时候调用dealloc

    什么时候回调用dealloc? 1.这个类被release的时候会被调用: 2.这个对象的retain count为0的时候会被调用: 3.或者说一个对象或者类被置为nil的时候:

  7. Mysql初识数据库《五》初识sql语句

    初识sql语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要 ...

  8. pycharm自动调整html页面代码缩进不正确的解决办法

    pycharm自动调整html页面代码缩进不正确的解决办法

  9. SpringMVC中视图解析器

    视图解析器:固定写法直接coppy就行 1.dispatcherServlet-servlet.xml中添加 <!-- 视图解析器InternalResourceViewResolver --& ...

  10. 洛谷 P2677 超级书架 2 题解

    传送门 题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有N(1 <= ...