一、预定义用户

用户管理是Oracle数据库管理的核心和基础。

在创建Oracle数据库时,系统预定义创建的用户根据作用不同又可以分为以下3类

管理员用户

实例方案用户

内置用户

此外Oracle数据库还包含两个特殊的用户scott和PUBLIC。

1.用户属性

用户的安全属性包括以下几个:

(1)用户名:在同一个数据库中,用户名必须是唯一的,并且用户名不能与角色名相同。

(2)用户身份认证:当用户连接数据库时,必须经过身份认证,因此创建用户时必须制定用户的身份认证方式。

(3)默认表空间

(4)临时表空间

(5)表空间配额

(6)概要文件:每个用户必须具有一个概要文件,从会话级和调用级两个层次限制用户对数据库系统资源的使用,同时设置用户的口令管理策略。

(7)设置用户的默认角色:通过设置用户的默认角色,可以禁用或激活用户所具有的角色。

(8)账户状态:在创建用户的同时,可以设定用户的初始状态,包括口令是否过期以及账户是否锁定等。

2.创建用户

(1)语法

CREATE USER user1 IDENTIFITED  [BY password]|

[EXTERNALLY [AS 'certificate_DN|kerberos_principal_name']]|

[GLOBALLY AS 'directory_DN']|

[DEFAULT TABLESPACE tablespace]

[TEMPORARY TABLESPACE tablespace|tablespace_group_name]

[QUOTA n K|M|UNLIMITED ON tablespace]

[PROFILE profile]

[PASSWORD EXPIRE]

[ACCOUNT LOCK|UNLOCK];

(2)实例

创建一个用户user1,采用数据库身份认证,口令为user1pwd,默认表空间为users,在该表空间的配额为10MB,在TBS1表空间上的配额为20MB ,默认临时表空间为TEMP,初始状态为不锁定

create user user1 identified by user1pwd
default tablespace users
temporary tablespace temp
quota 10M on users
quota 20M on tbs1
account unlock;

  3.用户身份认证

当用户连接数据库时,必须经过身份认证。Oracle提供了数据库身份认证、外部身份认证以及全局身份认证3种身份认证方法。

(1)数据库身份认证:数据库身份认真是指数据库的用户名与口令都保存在数据库的内部,且口令以加密方式存储。

为了保证数据库身份认证的安全性,Oracle建议采用概要文件加强口令的管理,包括账户锁定,口令有效期,口令过期,及口令复杂度校验

主要的优点有:

所有的用户账户及认证都由数据库自身控制,不需要依赖数据库之外的任何东西

Oracle提供了强大的口令管理特性,进一步加强了安全性

当数据库用户量较少时,数据库身份认证管理比较方便。

(2)外部身份认证:外部身份认证是指用户的账户由Oracle数据库管理,但口令管理和身份验证由外部服务来完成。

创建一个采用操作系统神风认证额非数据库管理员用户

如果采用客户端操作系统认证,需要将数据库的初始化参数REMOTE_OS_AUTHENT设置为true,并关闭数据库重新启动。该参数默认为FALSE,即只能支持数据库服务器本地操作认证

确保网络配置文件sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES=(NTS).

查询初始化参数,确保值为OPS$

SQL> show parameter os_authent_prefix;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
os_authent_prefix string OPS$

                  创建一个操作系统用户,如sunfengdong,隶属于adminstrators用户组

在数据库中创建一个名为OPS$SFD\sunfengdong的数据库用户,并授予权限

(3)全局身份认证:是采用Oracle数据库的高级安全组件,利用LDAP目录服务器集中管理用户信息,包括用户的身份认证。

4.修改用户

将用户user口令修改为user1,用时将该用户锁定

alter user user1 identified by user1 account lock;

5.删除用户

drop user cascade;

如果用户存在数据库对象,则必须使用cascade,先删除模式,再删除用户。

Oracle数据库安全(一)用户管理的更多相关文章

  1. oracle 学习笔记--用户管理

    oracle 用户管理 创建用户(需要具有dba权限的用户) create user 用户名 identified by 密码 defaule tablespace users     //默认表空间 ...

  2. Oracle DB 执行用户管理的备份和恢复

    • 说明用户管理的备份和恢复与服务器管理的备份和恢复 之间的差异 • 执行用户管理的数据库完全恢复 • 执行用户管理的数据库不完全恢复 备份和恢复的使用类型 数据库备份和恢复的类型包括: • 用户管理 ...

  3. oracle工具 sqlplus 用户管理

    可以通过system用户对普通用户解锁.alter user scott account unlock; 工具:1/ sqlplusw sqlplus 自带.调用oracle安装目录下bin目录下的e ...

  4. oracle数据库之用户管理

    转载 Oracle创建用户.角色.授权.建表   一.oracle数据库的权限系统分为系统权限与对象权限: 系统权限( database system privilege )可以让用户执行特定的命令集 ...

  5. Oracle基础和用户管理

    1.数据库的使用: 项目的规模:负载量(用户)有多大? 成本: 安全性:   (小型数据库)access.forbase 负载小 :100人以内,比如留言板,信息管理系统. 成本:千元以内. 安全性要 ...

  6. Oracle 数据库基本操作——用户管理与文件管理

    目录: 1.初始状态 2.登录数据库 3.创建表空间 1)概念 2) 基本表空间 3)表空间管理 4.创建新用户 5.删除用户 6.用户的授权 1)定义 2)授予权限的方法 3)权限分类 4)授权注意 ...

  7. Oracle笔记之用户管理

    1. 创建用户 创建用户使用create user语句,需要DBA权限: CREATE USER tom IDENTIFIED BY mot; 2. 更改用户密码 修改别人的密码需要DBA权限,或者a ...

  8. oracle系列(二)用户管理

    SQL> conn /as sysdbaConnected to Oracle Database 11g Express Edition Release 11.2.0.2.0 Connected ...

  9. oracle数据库一些用户管理语句

    查询所有数据库用户 select * from dba_users 查看数据库名称 select name from v$database 查看权限 select * from user_sys_pr ...

  10. Oracle 23的用户管理

    创建用户的语法格式 Create user <user_name> Identified by<password> Default tabespace<default t ...

随机推荐

  1. C++ 类的继承六(多继承的二义性--虚基类)

    //多继承的二义性--虚基类(了解为主) #include<iostream> using namespace std; /* 多继承在现在的项目开发中一般不使用,他会增加项目的复杂度 * ...

  2. WPF实用知识点

    1.一个基本的WPF程序, 需要引入的程序集WindowsBase, PresentationCore, PresentationFramework using System; using Syste ...

  3. 如何正确使用Google搜索

    “” 双引号表示完全匹配,结果中必须出现与搜索文本完全相同的内容 A -B 搜索包含A但不包含B的结果(请注意A后面的空格不能省略) filetype 搜索对应类型的文件.例如:中国防火墙 filet ...

  4. 模拟ORA-26040: Data block was loaded using the NOLOGGING option

    我们知道通过设置nologging选项.能够加快oracle的某些操作的运行速度,这在运行某些维护任务时是非常实用的,可是该选项也非常危急,假设使用不当,就可能导致数据库发生ORA-26040错误. ...

  5. 【BZOJ4560】[JLoi2016]字符串覆盖 KMP+状压DP

    [BZOJ4560][JLoi2016]字符串覆盖 Description 字符串A有N个子串B1,B2,…,Bn.如果将这n个子串分别放在恰好一个它在A中出现的位置上(子串之间可以重叠)这样A中的若 ...

  6. 创建view,保存GROUP_CONCAT数据

    create view user_account_view asSELECT u.userId UserId ,u.userCode UserCode,GROUP_CONCAT(ac.id) Acco ...

  7. 转!!Java虚拟机堆的内存分配和回收

    Java内存分配和回收,主要就是指java堆的内存分配和回收.java堆一般分为2个大的区域,一块是新生代,一块是老年代.在新生代中又划分了3块区域,一块eden区域,两块surviver区域.一般称 ...

  8. Docker libnetwork(CNM)设计简介

    The Container Network Model CNM由以下三个组件构成:Sandbox,Endpoint以及Network Sandbox 一个Sandbox包含了一个容器网络栈的配置.其中 ...

  9. 【我的Android进阶之旅】Android插件化开发学习资料

    1.目前开源的插件开发框架大致有哪些? 1. 任玉刚 的 dynamic-load-apk Github 地址:https://github.com/singwhatiwanna/dynamic-lo ...

  10. 【转载】在Jersey JAX-RS 处理泛型List等Collection

    在Java中,从1.5开始,我们就可以使用泛型了(generic),这看上去很像C++ Template,但是实际上它们是不同的.在这里我不想过多的描述细节,你可以从Google上搜索一下. 但是,泛 ...