关键字(Keyword):19c 数据库安全 新特性 Schema Only Accounts
本文目录:
User(用户) VS Schema(模式)
Schema Only Accounts (18c)
Schema Only Accounts测试例 (18c)
配置single session proxy方式访问
Schema Only Accounts (19c)
Schema Only Accounts测试例(19c)
01
—
User(用户) VS Schema(模式)
首先,我们明确一下User(用户)和Schema(可以翻译成模式,但是交流中基本上都使用英文)的概念。
User(用户)可以理解为访问数据库的账号,用于标识一系列的权限(Privileges),角色(Roles )定义等,可以包括系统管理用户(administrative user accounts 如sys,system)和应用程序用户(application users 如用户自己创建的用户)。
Schema(模式)可以理解为数据库对象的集合,包含如:表、视图、存储过程、索引等各种对象。
在Oracle数据库中每个User(用户)都默认拥有一个缺省Schema,并且schema名等于用户名,所以Schema看上去和用户名一样。
下面是官方文档中的一个例子,HR用户拥有一个HR schema,在HR schema中包含了employees表,索引等对象。

▲Figure 2-1 HR Schema
http://dwz.date/ab7M
参考:(链接为缩短的网址)
Release 19 Database Conceptshttp://dwz.date/ab7F>User Accountshttp://dwz.date/ab7M>Introduction to Schema Objectshttp://dwz.date/ab7N>Schema Objects
02
—
Schema Only Accounts (18c)
为了更好的数据库安全角度考虑,18c 开始可以创建Schema Only的账户,这种账户可以仅保存数据对象,不允许客户端直接连接(但可以使用single session proxy方式连接)。
Schema Only的账户主要特性如下:
・可以根据需要,分配给这些帐户密码,使其变成普通账户・该特性适用于管理员帐户,也适用于非管理员帐户。・这些帐户只能在数据库实例上创建,而不能在ASM中创建・可以授予系统特权(例如CREATE ANY TABLE)和管理员角色(例如DBA)・可以根据授予它们的特权来创建表或过程之类的对象。・可以使用single session proxy方式配置代理身份验证进行连接。
Schema Only的账户无法通过DB Linke连接,并且在18c版本中无法授予SYSDBA,SYSOPER,SYSBACKUP,SYSKM,SYSASM,SYSRAC,SYSDG管理员权限。
参考:
Release 18 Security Guidehttp://dwz.date/ab7P>Schema Only Accounts
Schema Only Accounts测试例 (18c)
以下为Schema Only Accounts测试例 (18c):```--1. 创建Schema Only Account--create user <username> no authentication;例:create user test no authentication;--确认用户信息select username,account_status,authentication_type from dba_users where username='TEST';USERNAME ACCOUNT_STATUS AUTHENTI------------------------- -------------------- --------TEST OPEN NONE★--2.修改Schema Only Account为普通用户--alter user <username> identified by <password>;例:alter user test identified by test;grant dba to test;--确认用户信息select username,account_status,authentication_type from dba_users where username='TEST';USERNAME ACCOUNT_STATUS AUTHENTI------------------------- -------------------- --------TEST OPEN PASSWORD★--测试连接conn test/testConnected.--3. 修改普通用户为Schema Only Account--alter user <username> no authentication;例:conn / as sysdbaalter user test no authentication;--确认用户信息select username,account_status,authentication_type from dba_users where username='TEST';USERNAME ACCOUNT_STATUS AUTHENTI------------------------- -------------------- --------TEST OPEN NONE--测试Schema Only Account连接,会报错conn test/testERROR:ORA-01017: invalid username/password; logon deniedWarning: You are no longer connected to ORACLE.--4. 18c 版本,将sysdba等管理用户赋予Schema Only Account 会报错conn / as sysdbagrant sysdba to test;grant sysdba to test*ERROR at line 1:ORA-40366: Administrative privilege cannot be granted to this user.
配置single session proxy方式访问
配置single session proxy方式访问的方法如下:
conn / as sysdba--设置通过代理用户访问alter user <用户> grant connect through <代理用户>;conn <代理用户>[<用户>]/<代理用户密码>show user
测试例:(配置single session proxy)
--创建代理用户create user proxy_user identified by proxy_pass;grant create session to proxy_user;--设置可以通过代理用户访问testalter user test grant connect through proxy_user;--连接测试conn proxy_user[test]/proxy_passshow userUSER is "TEST"
02
—
Schema Only Accounts (19c)
19c 对Schema Only Accounts特性进行了加强,新增加了如下内容:
1. 取消了无法授予管理员权限的限制,将sysdba等管理用户赋予Schema Only Account。2. 为了更强的安全性,除sys,system的预定义用户都默认设置为Schema Only Accounts
Schema Only Accounts测试例(19c)
Schema Only Accounts测试例(19c)如下:
19c 版本,可以将sysdba等管理用户赋予Schema Only Accountconn / as sysdbagrant sysdba to test;Grant succeeded.--2. 预定义用户的authentication_type变成NONEselect username,account_status,authentication_type,oracle_maintained from dba_users order by authentication_type;USERNAME ACCOUNT_STATUS AUTHENTI O----------------- -------- -LBACSYS LOCKED NONE YGSMCATUSER LOCKED NONE YAUDSYS LOCKED NONE YOLAPSYS LOCKED NONE YGGSYS LOCKED NONE YDIP LOCKED NONE YSYSRAC LOCKED NONE YSYSBACKUP LOCKED NONE YORDSYS LOCKED NONE YREMOTE_SCHEDULER_AGENT LOCKED NONE YDVF LOCKED NONE YDBSNMP LOCKED NONE YGSMADMIN_INTERNAL LOCKED NONE YMDSYS LOCKED NONE YXDB LOCKED NONE YWMSYS LOCKED NONE YOUTLN LOCKED NONE YDBSFWUSER LOCKED NONE YDVSYS LOCKED NONE YAPPQOSSYS LOCKED NONE YGSMUSER LOCKED NONE YMDDATA LOCKED NONE YSI_INFORMTN_SCHEMA LOCKED NONE YORDDATA LOCKED NONE YLOCKED NONE YGSMROOTUSER LOCKED NONE YOJVMSYS LOCKED NONE YSYSDG LOCKED NONE YSYSKM LOCKED NONE YORACLE_OCM LOCKED NONE YORDPLUGINS LOCKED NONE YCTXSYS EXPIRED & LOCKED PASSWORD YANONYMOUS EXPIRED & LOCKED PASSWORD YEXPIRED & LOCKED PASSWORD YSYS OPEN PASSWORD YSYSTEM OPEN PASSWORD Y
参考:
18c new feature: Schema Only Account (Doc ID 2543817.1)Release 19 Security Guidehttp://dwz.date/ab7Q>Schema Only Accountshttp://dwz.date/ab7S>Default User Accounts Now Schema Onlyhttp://dwz.date/ab7T>Ability to Grant or Revoke Administrative Privileges to and from Schema-Only Accountshttp://dwz.date/ab7U>Predefined Schema User Accounts Provided by Oracle Database
本文介绍了Oracle 19c 数据库安全新特性 Schema Only Accounts相关内容,希望对你有所帮助。
专注于技术不限于技术!
用碎片化的时间,一点一滴地提高数据库技术和个人能力。
欢迎关注!
原文作者:SQL和数据库技术;如有侵权,请联系管理员删除。