oracle- 用户创建、权限、角色


  数据库安装中最后一步“口令管理”,可对 用户解锁,重置密码。

    数据库名:orcl

    sys:

      default password:manager

      主要存储数据字典与view,拥有dba、sysdba、sysoper的角色与权限,是权限最高的用户。

    system:

      default password:chang_on_install

      拥有dba、sysdba的角色与权限,若以sysdba角色登录,实质仍然以sys作为用户登录。

      使用PL/SQL “新建命令”,可以证实

          

         

  --创建用户

    create user 用户名 identified by 密码

  --删除用户

    drop user 用户名 cascade(如果用户下,已有table,view..)

  --给予角色与权限

    权限:规范用户能干什么事,比如 create table

    角色:就是权限的集合,是拥有多项权限的,一个或多个权限

 

  用户被创建后,如果没有分配先关权限,是不能够登录数据库的。

    --grant 角色名/权限名 to 用户

======================================================================

    --角色

      1.分类

      预定义角色: connect、resource、dba三种角色。

      自定义角色:

      connect 角色: 拥有 alter session、create cluster、create database link、create table、create view、create sequence 权限

      resource角色:允许用户在任何一个表空间建表

        隐含了 unlimited tablespace 系统权限,拥有create cluster、create indextype、create  table、

           create  sequence、create type、create procedure、create trigger权限

        dba角色:拥有所有的系统权限,但不具备 sysdba sysoper的特权,启动和关闭数据库、建立角色。  

      新建用户不能创建表,可尝试  grant unlimited tablespace to UserName;

 

      2.创建角色

       create  role RoleName not identified; ---不用验证方式
                  create  role RoleName identified by RolePwd; --验证的方式 

     3.角色赋予

       grant slect on tableName/viewName to roleName;

       如果当前用户=sys or system,则可以使用

        select * from dba_roles  查看所有的角色

        select * from dba_role_privs 查看所有用户拥有的角色

       做了个测试  select count(*) from dba_role_privs where grantee='SYS' =select count(*) from user_role_privs

      如果是普通用户,可以使用

        select * from user_role_privs   查看当前用户被授予的角色

      这些系统表其实是数据字典。    

        1、动态数据字典:

          以v$xxx开始的数据字典,反映数据库动态运行状况,在不同时间查询会得到不同的结果。

        2、DBA数据字典:

          是以DBA_xxx表示,存储数据库结构,查询DBA数据字典可以反映数据库结构设置,

          管理磁盘空间和表空间、事务与回退段、用户与表空间等信息。

           3、用户数据字:

          是以USER_xxx表示,反应用户所创建的实体信息

        4、ALL_xxx类数据字典:

          表示用户所创建的实体及用户有权可以存取的实体,如 all_users

    4.角色删除

      一个用户若想删除某个role,应当具有 drop any role 权限。

    5.查看系统角色所拥有的权限

      select *  from role_sys_privs

======================================================================

     --权限

       系统权限:描述用户对数据库访问的权限

       对象权限:用户对其他用户的数据对象操作的权限

          包含select、insert、update、delete、exec、all、index、refereces、execute

          其中all代表select、insert、update、delete四种权限

      如果希望用户A可以操作用户B某张表,则可以

        ---grant all on UserA.tableName to UserB (with grant option 即B可以将这个权限再次赋予用户C)

        ---select * from UserA.tableName

            ---revoke all on tableName from UserA (回收用户A对某表的操作权限)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM