用户权限与安全

一、管理用户

1、创建用户.

CREATE USER user_name

IDENTIFIED BY password

[DEFAULT TABLESPACE default_tablespace |

TEMPORARY TABLESPACE temp_tablespace |

PROFILE profile

QUOTA [ integer K | M ]

| UNLIMITED ON tablespace

| PASSWORD EXPIRE

| ACCOUNT LOCK | UNLOCK

];

-------------------------------------------------

使用 PASSWORD EXPIRE 语句,用来设置用户口令过期、失效,强制用户在登录数据库时必须修改口令。

-------------------------------------------------

使用 ACCOUNT LOCK 或者 ACCOUNT UNLOCK 选项, 表示是否锁定或者解锁用户账号。用户被锁定后,不可用。

-------------------------------------------------

查看用户信息:  DBA_USERS数据字典.

 

2、修改用户.

ALTER USER user_name

IDENTIFIED BY password

[DEFAULT TABLESPACE default_tablespace |

TEMPORARY TABLESPACE temp_tablespace |

PROFILE profile

QUOTA [ integer K | M ]

| UNLIMITED ON tablespace

| PASSWORD EXPIRE

| ACCOUNT LOCK | UNLOCK

];

 修改口令:

alter">sys@SDROLUN>alteruser yangboxuan identified byy;                   --方法1

sys@SDROLUN>grant connect to yangboxuanidentified byyangboxuan;    --方法2.

 修改默认表空间:

alter user yangboxuan default tablespaceCSCM_DATA;">sys@SDROLUN>alteruser yangboxuan default tablespace CSCM_DATA;

 使用户口令失效:

alter user yangboxuan passwordexpire;">sys@SDROLUN>alteruser yangboxuan password expire;

 锁定用户 |解锁用户:

alteruser xuenaunlock;">sys@SDROLUN>alteruser xuena unlock;

3、删除用户.

sys@SDROLUN>drop user yangboxuan cascade;

用户已删除。

查看用户会话信息.

1、使用数据字典视图 V$SESSION

17:50:47 scott@SDROLUN>conn scott/tiger
已连接。

 

17:50:27 sys@SDROLUN>select sid, serial#,logon_time, username, machine from v$session;

      SID    SERIAL#LOGON_TIME    USERNAME                      MACHINE
---------- ---------- -------------- ---------------------------------------------
      141      2694 24-7月-11                                   YANGBOXUAN-PC
      143         8 24-7月-11    SYSMAN                        yangboxuan-PC
      145      7373 24-7月-11    SYS                           WORKGROUP\YANGBOXUAN-PC

      148       142 24-7月-11    SYSMAN                        yangboxuan-PC
      150      1120 24-7月-11    SCOTT                         WORKGROUP\YANGBOXUAN-PC

      152         1 24-7月-11                                   YANGBOXUAN-PC
      154         1 24-7月-11                                   YANGBOXUAN-PC
      158      4100 24-7月-11    SYS                           WORKGROUP\YANGBOXUAN-PC

已选择8行。

已用时间:  00: 00: 00.06
17:51:06 sys@SDROLUN>alter system kill session'150,1120';   --断开scott的连接

系统已更改。

已用时间:  00: 00: 00.00
17:51:32 sys@SDROLUN>select sid, serial#,logon_time, username, machine from v$session;

      SID    SERIAL#LOGON_TIME    USERNAME                      MACHINE
---------- ---------- -------------- ---------------------------------------------
      141      2701 24-7月-11                                   YANGBOXUAN-PC
      143         8 24-7月-11    SYSMAN                        yangboxuan-PC
      145      7373 24-7月-11    SYS                           WORKGROUP\YANGBOXUAN-PC

      148       142 24-7月-11    SYSMAN                        yangboxuan-PC
      152         1 24-7月-11                                   YANGBOXUAN-PC
      154         1 24-7月-11                                   YANGBOXUAN-PC
      158      4100 24-7月-11    SYS                           WORKGROUP\YANGBOXUAN-PC

已选择7行。

已用时间:  00: 00: 00.05

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

17:50:57 scott@SDROLUN>select * from emp;
select * from emp
*
第 1 行出现错误:
ORA-00028: 您的会话己被终止


已用时间:  00: 00: 00.00

2、使用 视图V$OPEN_CURSOR     --记录了用户连接数据库后所执行的SQL语句。

3、V$SESSION_WAIT --监控数据库中事件的等待信息。

二、权限.

系统权限:系统级控制,可以决定是否可以连接到数据库,在数据库中可以进行哪些操作等。

        例:创建会话、创建表、创建视图、创建视图等。   针对用户来设置的。

对象权限:  Oracle中,可以授权的数据库对象包括:

        表、视图、序列、存储过程和函数 等。

        对象权限一般是针对用户模式对象的。例如:用户访问模式对象中的表。

Oracle 对数据库对象权限 采用分散控制方式,允许具有 WITH GRANT OPTION的用户把相应权限授予其他用户,但不允许循环授权,——即 被授权者 不能把权限 再授予授权者或其祖先。

系统权限.

1、系统权限的分类:   * 包含 ANY关键字的系统权限     --可在Oracle任何模式中进行相应的操作。

                     * 不包含 ANY 关键字的系统权限     --只能在用户自己的模式中进行相应操作。

 DBA系统权限(数据库对象管理)

ANALYZEANY    --分析表、簇、索引

CREATE/ALTER/DROP ANYCLUSTER

CREATE/ALTER/DROP ANYINDEX

CREATE/ALTER/DROP ANYPROCEDURE

EXECUTE ANY PROCEDURE

GRANT ANY PRIVILEGE

ALTER/DROP ANY ROLE

GRANT ANY ROLE

CREATE/ALTER/DROP ANYSEQUENCE

SELECT ANY SEQUENCE

CREATE/ALTER/DROP ANYTABLE

COMMENT ANY TABLE

SELECT ANY TABLE

INSERT ANY TABLE

UPDATE ANY TABLE

DELETE ANY TABLE

LOCK ANY TABLE

FALSHBACK ANY TABLE

CREATE ANY VIEW

DROP ANY VIEW

CREATE/ALTER/DROP ANYTRIGGER

ADMINISTRATOR DATABASETRIGGER

CREATE/DROP ANYSYNONYM    --同义词

 DBA系统权限(数据库维护)

ALTERDATABASE      --修改数据库的结构 权限,例:管理日志文件

ALTERSYSTEM        --修改数据库系统的初始化参数

CREATE/DROP PUBLICSYNONYM     --公共同义词

CREATE/ALTER/DROPPROFILE      --资源配置文件

CREATE/ALTER/DROP ROLE

CREATE/ALTER/DROPTABLESPACE

MANAGERTABLESPACE  --管理表空间,使表空间处于 online、

                                              offline、

                                              begin backup、

                                              end backup 状态。

UNLIMITEDTABLESPACE    --不受配额限制的使用表空间。

CREATE SESSION

ALTER SESSION

ALTER RESOURCECOST     --更改配置文件中资源消耗的方式

RESTRICTEDSESSION        --在数据库受限会话模式下连接到数据库

CREATE/ALTER/DROP USER

BECOMEUSER       --当执行完全装入时,称为另一个用户

SYSOPER(系统操作员权限) 

          --START UP、

          --SHUTDOWN、

          --ALTER DATABASE MOUNT/OPEN、

          --ALTER DATABASE BACKUP CONTROLFILE、

          --ALTER DATABASE BEGIN/END BACKUP、

          --ALTER DATABASEARCHIVELOG、

          --RECOVER DATABASE、

          --RESTRICTED SESSION、

          --CREATE SPFILE/PFILE

SYSDBA(系统管理员权限)--SYSOPER所有权限,并带WITHADMIN OPTION子句

SELECT ANYDICTIONARY  --允许查询以“DBA_”开头的数据字典.

数据库开发人员的系统权限

CREATE/DROPCLUSTER    --在自己的模式中 创建、删除 聚簇

CREATE/DROP PROCEDURE

CREATE/DROP DATABASELINE

CREATE/DROP SYNONYM

CREATE/DROP SEQUENCE

CREATE TRIGGER

CREATE TABLE

CREATE VIEW

CREATETYPE   --创建对象类型 的权限

2.授予系统权限

GRANT system_privilege TO

PUBLIC | role | user_name

[WITH ADMIN OPTION].

system@SDROLUN>grant create session to boxuanwith admin option;

授权成功。

已用时间:  00: 00: 00.03

system@SDROLUN>grant create table, create view toboxuan;

授权成功。

3.系统权限的回收: REVOKE

REVOKE 系统权限 FROM PUBLIC |role | user_name ;

system@SDROLUN>revoke create table, create viewfrom boxuan;

撤销成功。

4.对象权限

授予对象权限:  GRANT object_privilege | ALL [PRIVILEGES]

                 ON  [schema.]object

                 TO  PUBLIC | role | user_name

              [WITH  GRANT OPTION]

system@SDROLUN>grant select on scott.dept toboxuan;

授权成功。

system@SDROLUN>conn boxuan/boxuan;
已连接。
boxuan@SDROLUN>select * from scott.dept;

    DEPTNODNAME         LOC
---------- -------------- -------------
       10ACCOUNTING    NEW YORK
       20RESEARCH      DALLAS
       30SALES         CHICAGO
       40OPERATIONS    BOSTON

--将表 DEPT 的 All权限授予所有用户

system@SDROLUN>grant all on scott.dept topublic;

授权成功。

4.9.对象权限的回收

REVOKE object_privilege | ALL [PRIVILEGES]

   ON  [ schema.]object

 FROM  PUBLIC | role | user;

scott@SDROLUN>revoke all on dept from public;

撤销成功。

5、查看权限信息.

                 存储权限信息的数据字典视图

 数据字典视图     描述

------------------- ---------------------------------------------------------------

DBA_COL_PRIVS       包含数据库中所有 授予表列 上的 对象权限信息

ALL_COL_PRIVS_MADE  包含当前用户作为对象权限的 授予者,在所有列上的对象权限信息。

ALL_COL_PRIVS_RECD  包含当前用户作为对象权限的 接收者,在所有列上的对象权限信息。

DBA_TAB_PRIVS       包含数据库所有的对象权限信息。

DBA_SYS_PRIVS       包含数据库所有的系统权限信息。

SESSION_PRIVS       包含当前数据库用户可以使用的权限信息。

1、使用 DBA_SYS_PRIVS

2、     DBA_TAB_PRIVS

角色.

创建角色:    create role role_name [notidentified | identified by password]

sys@SDROLUN>create role role1
 2        identified by password;

角色已创建。
sys@SDROLUN>grant create session, create table,create view to role1 with admin option;

授权成功。

sys@SDROLUN>grant role1 to boxuan;

授权成功。

conn">sys@SDROLUN>connboxuan/boxuan ;
已连接。
boxuan@SDROLUN>select * from role_sys_privs;

ROLE                          PRIVILEGE                               ADM
---------------------------------------------------------------------- ---
ROLE1                         CREATETABLE                            YES
ROLE1                         CREATESESSION                          YES
ROLE1                         CREATEVIEW                             YES

修改用户的默认角色:

--设置用户角色 失效

system@SDROLUN>alter user boxuan default rolenone;

用户已更改。

--设置用户角色 生效.

system@SDROLUN>alter user boxuan default roleALL;

用户已更改。

禁用和启用角色:

set role role1.

查看角色信息:

DBA_ROLES      --记录数据库中所有的角色

DBA_ROLE_PRIVS --记录所有已经被授予用户和角色的角色。

USER_ROLES     --包含已经授予当前用户的角色信心

ROLE_ROLE_PRIVS

ROLE_SYS_PRIVS

ROLE_TAB_PRIVS

SESSION_ROLES

.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值