oracle——用户和权限管理

oracle 11g 中的用户和权限管理:

用户 ——分为默认的用户和自己创建的用户

(只有用合法的用户账号才能访问oracle数据库)

一、用户

1、oracle 11g中的默认用户(举例三个)
       ① sys (oracle中权限最大的用户)
           数据库中所有数据字典表和视图都存储在 SYS 模式中。SYS用户主要用来维护系统信息和管理实例。

       ② system(默认的系统管理员)
          SYSTEM 是默认的系统管理员,该用户拥有Oracle管理工具使用的内部表和视图。通常通过SYSTEM用户管理数据库用户、权限和存储等

③ scott (普通内置用户)
            oracle公司中的第一个员工的名字。在安装oracle中自己制定密码。

2、oracle中的创建新用户
要连接到Oracle数据库,就需要创建一个用户帐户
每个用户都有一个默认表空间和一个临时表空间
CREATE USER命令用于创建新用户,语法如下:

create user 用户名 identified by 密码
[default tablespace taablespace]   -- 默认表空间
[temporary tablespace tablespace]  -- 临时表空间
  • 其中密码应该以字母、下划线、汉字开头。不能以数字开头!!!

3、oracle网页管理登录
step 1 : https ://计算机全名 : 端口号(1158)/em
        sys 登录时要将连接身份改为sysdba
        system与其他普通用户Scott等登录身份为nomal

二、profile 概要文件

当我们创建用户时候,如果没有指定概要文件,那么oracle就会自作主张将名为default的概要文件赋值给用户。
这里写图片描述

  • 如上图所示 default概要文件就是制定一个用户所占用的资源

举个栗子:

--创建一个用户没有指定概要文件,即默认概要文件为default
create user test1 identified by test1;  
--自己在创建一个概要文件的语法如下
create profile pro1 limit 
                 password_life_time  10   -- 口令有效期(10天之内必须改密码)
                  password_grace_time 2    -- 最大宽限两天(依据上面设定)
                   failed_login_attemps 2   -- 允许最大失败登录次数
                     password_lock_time   2;  -- 锁定天数
--给test1更改概要文件 用 alter啦
alter user test1 profile pro1;
  • 小贴士 万一账户被锁定了 就找system解锁哦 alter user test1 account unlock;

三、权限

执行特定命令 访问数据库对象的权利。
权限有两种类型,系统权限和对象权限

  • 系统权限允许用户执行某些数据库操作,如创建表,创建会话就是一个系统权限

    授予用户权限,可以是系统权限或者对象权限。
    GRANT privilege [,privilege…] TO user [, user|role, PUBLIC…]
    [WITH ADMIN OPTION];

    说明:包含了WITH ADMIN OPTION,只能是系统权限。

    扫描二维码关注公众号,回复: 2889821 查看本文章

    收回系统权限REVOKE……FROM……
    例:REVOKE create session FROM test1;

  • 对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作 (对某一个特定的对象)
    grant……to……
    revoke……from……

系统权限::

-- 以下便是创建一个用户能够登录并建表的基本权限
grant create session to test1; —— 连接数据库的权限
grant create table to test1;   --建表的权限
grant unlimit tablespace to test1; -- 使用表空间的权限

—— test1给其他用户创建表/删除表的权限
grant create any table to test1;
grant drop any table to test1;

在system下可以查看一个用户拥有几个权限:
select * from dba_sys_privs d where d.grantee='TEST1';
– 老铁 ’ ‘中 必须大写!!

系统权限的传递:with admin option

 grant create session to test2 with admin option;
 -- 在此用户之下创建的用户都将具有create session权限。即具有向下传递性。
  • 不会随着该权限的缺失而影响被传递者对该权限的使用。

对象权限::

GRANT SELECT ON SCOTT.EMP TO test3; 

GRANT UPDATE ON SCOTT.EMP TO test3; 
GRANT UPDATE(某一列) ON SCOTT.EMP TO test3; 

GRANT ALL ON SCOTT.EMP TO  test3; 
--允许用户插入、删除、更新和查询 EMP 表中的记录

对象权限的传递:: with grant option

grant select on scott.emp to tast4 with grant option;

区别

  • 对象权限 上游收回权限,下游也跟着被收回
  • 系统权限 上游收回权限,下游不影响对该权限的使用。

四、更改与删除用户

alter user user_name identified by new_password;
drop user user_name
drop user user_name cascade; –删除用户模式
拓展:
drop tablespace 表空间名 including contents and datafiles;

五、角色管理 role

角色管理:角色是一组相关权限的组合,可以将权限授予角色,再把角色授予用户,以简化权限管理。

(1)创建角色CREATE ROLE,应该具有CREATE ROLE系统权限。
CREATE ROLE role_name;

(2) 授予角色权限,可以是系统权限或者对象权限。
GRANT privilege TO ROLE;
例: grant create session ,create any table, drop any table to role1;

(3) 将角色授予用户
GRANT role TO user;
例: grant role1 to test2;

(4) 从用户收回角色
REVOKE role FROM user;

oracle中的内置角色:
(1) connect角色 包含create session权限
(2) resource 内置资源 包含多种create 权限。

select * from role_sys_privs r where r.role='CONNECT'; 
-- 查看一个角色所拥有的系统权限

select * from dba_tab_prives r where r.role='CONNECT';
-- 查看一个角色所拥有的对象权限

select * from dba_tab_prives d where d.grantee='SCOTT'; 
-- 查看一个用户所拥有的系统权限

select * from dba_tab_prives d where d.grantee='SCOTT'; 
-- 查看一个用户所拥有的对象权限

                                                                        这里写图片描述

猜你喜欢

转载自blog.csdn.net/bibibrave/article/details/80817719