创建和管理数据库用户账户

用户账户属性

用户账户拥有很多在创建账户时定义的属性。这些属性将应用于连接到账户的会话,在会话运行期间,DBA或会话可以更改其中一些属性。

  • 用户名
  • 身份验证方法
  • 默认表空间
  • 表空间配额
  • 临时表空间
  • 用户配置文件
  • 账户状态

在创建用户时,用户名和身份验证方法是必需的,其他的都有默认值。

  1. 用户名 数据库中的用户名必须是唯一的,必须以字母开头,字符数不能超过30个,只能包含字母、数字、$和_。用户名不能是保留字。字母区分大小写,但所有字母将自动转换为大写字母。如果在双引号中指定用户名,可以不遵守这些规则(长度除外),以后必须使用双引号连接到账户。
  2. 默认表空间和配额 每个用户账户都有默认的表空间。用户创建的任何模式对象(如表或索引)将保存在此表空间中。用户可以拥有获得配额的任何表空间上的对象,但除非在创建对象时指定另一个表空间,否则,对象就放在用户的默认表空间中。如果在创建用户时未指定默认表空间,数据库范围的默认表空间将应用于所有用户账户。可以在创建数据库时设置默认表空间,也可以以后使用下面的语法进行更改:ALTER DATABASE DEFUALT TABLESPACE tablespace_name; 如果创建数据库时未指定默认表空间,则将SYSTEM设置为默认表空间。“配额”是表空间中用户允许占用的空间量。到达配额之前,用户可以创建对象,并为其分配区间。如果表空间中的配额已经用尽,则将无法创建任何对象。配额可以随时更改。如果将用户配额限制为低于其已拥有的对象大小(甚至缩减为0),对象将生存下来,且仍可用,但不允许变大。要创建段,用户必须具有执行CREATE TABLE的权限,而且拥有在其中创建表的表空间上的配额。
  3. 临时表空间 永久对象(如表)存储在永久表空间中,而临时对象存储在临时表空间中。如果会话为执行某些操作,需要的空间量超出了会话PGA的可用空间量,则需要临时表空间中的空间,为每个用户账户都会分配临时表空间,但连接到该账户的所有用户会话将共享此临时表空间。不需要为用户授予临时表空间上的配额。其原因是,临时表空间中的对象并不归用户真正拥有,而是属于SYS用户,SYS用户拥有所有表空间上的无限配额。要更改用户的临时表空间(将影响连接到账户的所有未来会话),请使用ALTER USER命令:ALTER USER username TEMPORARY TABLESPACE tablespace_name;
  4. 账户状态 每个用户账户都有一定的状态,如DBA_USERS的ACCOUNT_STATUS列所示。有5种可能的状态:
    • 打开(OPEN) 账户可供使用
    • 锁定(LOCKED) 表示DBA故意锁定账户,任何用户都不能连接到锁定的账户。
    • 过期(EXPIRED) 表示口令生命周期已经终结。口令只拥有有限的生命周期。在重置口令之前,任何用户都不能连接到EXPIRED账户。
    • 正常过期(EXPIRED(GRACE))这表示“正常时间段(grace period)”生效。口令在生命周期结束时并不立即过期:可以配置一个正常时间段,在此期间,连接到相应账户的用户有机会更改口令。
    • 超时锁定(LOCKED(TIMED)) 这表示由于登录尝试失败,账户已被锁定。可以将账户配置为:在错误口令出现一定的次数后,账户将自动锁定。

要锁定账户和解除账户的锁定,请使用以下命令:

ALTER USER username ACCOUNT LOCK;

ALTER USER username ACCOUNT UNLOCK;

要强制用户更改口令,请使用以下命令:

ALTER USER username PASSWORD EXPIRE;

这将立即开启正常阶段,强制用户在下次尝试登录时更改口令。不存在诸如“alter...unexpired”的命令,要使账户再次完全运行,唯一的途径是重置口令。

身份验证方法

用户账户必须具有身份验证方法:数据库可以借助这些方法,确定查实创建会话(连接到账户的会话)的用户是否有权这么做。最简单的技术是提供一个与数据库中存储的口令匹配的口令,除此之外,还有其他方法:

  • 操作系统身份验证
  • 口令文件身份验证
  • 口令身份验证
  • 外部身份验证
  • 全局身份验证

前两项技术仅供管理员使用,最后一项技术要求使用LDAP目录服务器。LDAP目录服务器是Oracle Internet Directory,作为Oracle Fusion Middleware Suite的一部分发布。

创建账户

CREATE USER命令包含两个必需的参数:用户名和身份验证方法。它可选地接收指定默认表空间和临时表空间的子句、一个或多个配额子句、命名配置文件以及锁定账户和使口令过期的命令。

 create user scott identified by tiger
default tablespace users temporary tablespace temp
quota 100m on users,quota unlimited on example
profile developer_profile
password expire
account unlock;

只有第一行是必需的,其他的都具有默认设置。

  1. 提供用户名,以及用于口令验证的口令。
  2. 提供默认表空间和临时表空间
  3. 设置默认表空间和另一个表空间上的配额。
  4. 为用于口令和资源管理的配置文件命名。
  5. 强制用户立即更改口令。
  6. 使账户变得可用。

除名称外,可以使用ALTER USER命令调整账户上的每个属性。

删除账户:drop user scott;

只有用户不拥有任何对象时,此命令才能成功,即要求模式是空的。如果不希望首先确定拥有的所有对象并删除它们,则可以指定CASCADE将这些与用户一起删除:

drop user scott cascade;

授予和撤销权限

系统权限

常用的权限如下:

  • 创建会话(CREATE SESSION)
  • 受限制会话(RESTRICTED SESSION)
  • 更改数据库(ALTER DATABASE)
  • 更改系统(ALTER SYSTEM)
  • 创建表空间(CREATE TABLESPACE)
  • 创建表(CREATE TABLE)
  • 授予任何对象权限(GRANT ANY OBJECT PRIVILEGE)
  • 创建任何表(CREATE ANY TABLE)
  • 删除任何表(DROP ANY TABLE)
  • 插入任何表、更新任何表、删除任何表(INSERT ANY TABLE,UPDATE ANY TABLE,DELETE ANY TABLE)
  • 选择任何表(SELECT ANY TABLE)

权限分析

重要的过程:

  • dbms_privilege_capture.create_capture
  • dbms_privilege_capture.enable_capture
  • dbms_privilege_capture.disable_capture
  • dbms_privilege_capture.generate_result

重要的视图:

  • dba_used_privs
  • dba_unused_privs

创建和管理配置文件

口令配置文件的限制

使用配置文件(profile)可以实施口令策略。

Oracle 安全性一的更多相关文章

  1. Oracle数据库安全性设计

    一.什么是安全的系统 安全性建设是一个长期并且卓绝的工作.作为一个符合标准的企业级系统,我们认为税务系统应该具备以下的安全性特点: ◆高可用性 ◆对敏感数据的访问控制能力. ◆监测用户行为的审计能力. ...

  2. 数据库、MySQL下载与安装、基本SQL语句

    数据演变史 # 1.单独的文本文件 没有固定的存放位置 没有固定的数据格式 '''程序彼此无法兼容 没有统一的标准''' # 2.软件开发目录规范 按照文件功能的不同规定了相应的位置 '''文件查找变 ...

  3. 数据管理技术发展,数据库应用发展史,数据库分类,MySQL

    计算机数据管理技术发展 1. 自由管理阶段 用户以文件形式将数据组织起来,并附属在各自的应用程序下.    1.数据不保存     当时计算机主要用于科学计算,一般不需要将数据长期保存,只是计算某一课 ...

  4. 数据库---实验四 oracle的安全性和完整性控制

    实验内容: (一) 授权 . 以dba用户的身份登陆oracle,创建用户u1+学号后四位,u2+学号后四位. SQL> create user u1_3985 identified by &q ...

  5. Oracle数据库——数据库安全性管理

    一.涉及内容 1.验证系统权限管理. 2.验证角色管理. 3.验证概要文件管理. 二.具体操作 (一) 1.根据以下要求进行系统权限的授予与回收操作. (1)创建用户user1,并为它授予create ...

  6. 技巧:如何提升Oracle用户密码的安全性

    环境:Oracle 11.2.0.4 客户需求:主要背景是数据库中有很多业务用户名,且由于部分用户缺乏安全意识,甚至直接将自己的密码设置为和用户名一样,目前客户期望密码设置不要过于简单,最起码别和用户 ...

  7. oracle ebs应用产品安全性-定义访问权限集

    定义 定义访问权限集是一项分配至责任层的可选的安全功能,是对Oracle 11i应用产品弹性域安全性定义的功能扩展,对总帐管理模块的一些内容进行安全性定义和权限分配的集合,以控制不同的责任对一些内容的 ...

  8. oracle ebs应用产品安全性-数据访问权限集

    定义 数据访问权限集是一个重要的.必须设定的系统配置文件选项.对具有相同科目表.日历和期间类型的分类帐及其所有平衡段值或管理段值的定义读写权限,系统管理员将其分配至不同的责任以控制不同的责任对分类帐数 ...

  9. 配置Oracle GoldenGate安全性

    本章介绍如何配置Oracle GoldenGate安全性. 本章包括以下部分: Overview of Oracle GoldenGate Security Options Encrypting Da ...

随机推荐

  1. Liunx一些命令

    1.设置管理员的密码:sudo passwd root2.获取管理员权限su root3.查看IP地址sudo ifconfig -a4.创建一个文件sudo touch test.txt5.创建一个 ...

  2. WinForm实现Rabbitmq官网6个案例-Routing

    代码: namespace RabbitMQDemo { public partial class Routing : Form { private string exchangeName = &qu ...

  3. Spring Data MongoDB 模糊查询

    Pattern pattern = Pattern.compile("^.*" + value + ".*$"); Query query = new Quer ...

  4. 微服务架构之spring cloud hystrix&hystrix dashboard

    在前面介绍spring cloud feign中我们已经使用过hystrix,只是没有介绍,spring cloud hystrix在spring cloud中起到保护微服务的作用,不会让发生的异常无 ...

  5. The memory graph Shared by the method

    Phone类 package com.itheima_03; /* * 手机类 */ public class Phone { String brand; int price; String colo ...

  6. CentOS 7 yum 安装 Nginx

    1.添加Nginx到YUM源 添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令: sudo rpm -Uvh http://nginx.org/packages/centos/7 ...

  7. [NCH 1, 3]

    Preview: 1. Implement strStr() O(m*n): class Solution { public: int strStr(string haystack,string ne ...

  8. SQL语句的执行顺序 1>优先执行,然后依数字排序

                  1>…From 表       2>…Where 条件       3>…Group by 列       4>…Having 筛选条件       ...

  9. [翻译] ABCIntroView

    ABCIntroView ABCIntroView is an easy to use onboarding which allows you to introduce your users to t ...

  10. centos编译安装php7

    环境说明 VMware 12 中搭建的CentOS 7 x64 4核 2G内存 环境中已经安装了http://blog.csdn.net/u014595668/article/details/5016 ...