七月 21, 2023
数据库用户帐户用于对连接会话进行身份验证,并授权单个用户访问特定数据库对象。数据库管理员向用户帐户授予权限,应用程序使用用户帐户访问数据库对象。
Oracle 用法
对应用程序提供数据库访问的步骤
- 在数据库中创建用户帐户。用户帐户通常使用密码进行身份验证。还存在对用户进行身份验证的其他方法。
- 将权限分配给数据库用户帐户,以便访问某些数据库对象和系统权限。
- 连接应用程序使用数据库用户名和密码进行身份验证。
Oracle 数据库用户通用属性
- 向数据库用户授予特权或角色(特权集合)。
- 为用户定义缺省数据库表空间。
- 为用户分配表空间配额。
- 配置密码策略、密码复杂性、锁定或解锁帐户。
身份验证机制
- 用户名和密码 — 默认使用。
- 外部 — 使用操作系统或第三方软件(如 Kerberos)。
- 全局 — 企业目录服务(如 Active Directory 或 Oracle Internet Directory)。
与用户相比的 Oracle 模式
在 Oracle 数据库中,用户等于一个模式。这种关系很特殊,因为用户和模式本质上是一回事。将 Oracle 数据库用户视为用于连接到数据库的帐户,而数据库模式是属于该帐户的对象(表、视图等)集。
- 不能单独创建模式和用户。创建数据库用户时,还会创建具有相同名称的数据库模式。
- 在 Oracle 中运行
CREATE USER
命令时,将创建一个用于登录的用户和一个用于存储数据库对象的模式。 - 新创建的模式为空,但可以在其中创建表等对象。
Oracle 12c 中的数据库用户
Oracle 12c 数据库中存在两种类型的用户:
- 普通用户 — 在所有数据库容器、根数据库和可插拔数据库 (PDB) 中创建。普通用户必须在用户名中包含 C## 前缀。
- 本地用户 — 仅在特定 PDB 中创建。可以在多个 PDB 中创建具有相同用户名的不同数据库用户。
例子
以下示例演示了以下操作:
- 使用默认表空间创建公共数据库用户。
- 向用户授予权限和角色。
- 将配置文件分配给用户,解锁帐户,并强制用户更改密码(
PASSWORD EXPIRE
)。 - 在可插拔数据库
my_pdb1
中创建本地数据库用户。
CREATE USER c##test_user IDENTIFIED BY password DEFAULT TABLESPACE USERS;
GRANT CREATE SESSION TO c##test_user;
GRANT RESOURCE TO c##test_user;
ALTER USER c##test_user ACCOUNT UNLOCK;
ALTER USER c##test_user PASSWORD EXPIRE;
ALTER USER c##test_user PROFILE ORA_STIG_PROFILE;
ALTER SESSION SET CONTAINER = my_pdb1;
CREATE USER app_user1 IDENTIFIED BY password DEFAULT TABLESPACE USERS;
有关详细信息,请参阅 Oracle 文档中的管理 Oracle 数据库用户的安全性。
PostgreSQL 用法
在PostgreSQL中没有用户,只有角色,具有连接权限的角色可以被视为用户。
有关更多信息,请参阅 PostgreSQL 角色。