龙空技术网

快速搞懂19c 数据库安全新特性 (一)Schema Only Accounts

TeacherWhat 87

前言:

现时姐妹们对“plsql登陆提示ora01017”大体比较关怀,姐妹们都需要了解一些“plsql登陆提示ora01017”的相关文章。那么小编同时在网上搜集了一些有关“plsql登陆提示ora01017””的相关内容,希望小伙伴们能喜欢,看官们一起来学习一下吧!

关键字(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)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 出处:

参考:(本文中链接为缩短的网址)

Release 19 Database Concepts;User Accounts;Introduction to Schema Objects;Schema Objects
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 Guide ;Schema Only Accounts
Schema Only Accounts测试例 (18c)
--1. 创建Schema Only Account--create user <username> no authentication;例:SQL> create user test no authentication;--确认用户信息SQL> 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>;例:SQL> alter user test identified by test;SQL> grant dba to test;--确认用户信息SQL> select username,account_status,authentication_type from dba_users where username='TEST';    USERNAME                  ACCOUNT_STATUS       AUTHENTI    ------------------------- -------------------- --------    TEST                      OPEN                 PASSWORD★--测试连接SQL> conn test/testConnected.--3. 修改普通用户为Schema Only Account--alter user <username> no authentication;例:SQL> conn / as sysdbaSQL> alter user test no authentication;--确认用户信息SQL> select username,account_status,authentication_type from dba_users where username='TEST';    USERNAME                  ACCOUNT_STATUS       AUTHENTI    ------------------------- -------------------- --------    TEST                      OPEN                 NONE--测试Schema Only Account连接,会报错SQL> conn test/testERROR:ORA-01017: invalid username/password; logon deniedWarning: You are no longer connected to ORACLE.--4. 18c 版本,将sysdba等管理用户赋予Schema Only Account 会报错SQL> conn / as sysdbaSQL> grant 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)

--创建代理用户SQL> create user proxy_user identified by proxy_pass;SQL> grant create session to proxy_user;--设置可以通过代理用户访问testSQL> alter user test grant connect through proxy_user;--连接测试SQL> conn proxy_user[test]/proxy_passSQL> show userUSER is "TEST"
Schema Only Accounts (19c)

19c 对Schema Only Accounts特性进行了加强,新增加了如下内容:

取消了无法授予管理员权限的限制,将sysdba等管理用户赋予Schema Only Account。为了更强的安全性,除sys,system的预定义用户都默认设置为Schema Only AccountsSchema Only Accounts测试例(19c)

--1. 19c 版本,可以将sysdba等管理用户赋予Schema Only Accountconn / as sysdbaSQL> grant sysdba to test;Grant succeeded.--2. 预定义用户的authentication_type变成NONESQL> select 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     YSYS$UMF                 LOCKED            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 YXS$NULL                 EXPIRED & LOCKED  PASSWORD YSYS                     OPEN              PASSWORD YSYSTEM                  OPEN              PASSWORD Y

参考:

Release 19 Security Guide Only Accounts ;Default User Accounts Now Schema Only;Ability to Grant or Revoke Administrative Privileges to and from Schema-Only Accounts    ;Predefined Schema User Accounts Provided by Oracle Database

标签: #plsql登陆提示ora01017