点击▲关注 “数据和云”   给公众号标星置顶

更多精彩 第一时间直达

老张拉呱:thomas zhang,甲骨文云平台事业部资深技术顾问,2008年加入甲骨文公司数据库咨询部门,10+年甲骨文解决方案咨询支持经验,资深系统工程师、Oracle OCM认证专家,具有丰富的Cloud /IT项目经验。目前主要负责甲骨文中国北方区(医院/卫生、交通、制造、教育、政府、证券、媒体、金融、零售等行业)客户的数据库、中间件、IaaS/PaaS、集成系统等相关技术解决方案咨询工作。

签名:我为人人,人人为我,三人行,必有我师

新浪微博: http://weibo.com/tomszrp

从 Database 18c 开始,可以创建 Schema Only Account(可以拥有对象、权限/角色,但不允许直接连接的 Schema),不过可以通过 single session proxy 的方式连接访问。

这种类型的 account 设计既是为了满足 Oracle-provided schemas 同时也适用于客户应用设计的需要,创建用户的时候不需要指定密码或授权方式。除非使用 ALTER USER 语句分配身份验证方法,否则无法对 Schema Only Account 进行身份验证。DBA_USERS_WITH_DEFPWD数据字典视图中不再包含Schema Only Account 信息。

从19c开始,大部分Oracle-providedschemas,除了SYS,SYSTEM以及Sample Schema User Accounts(比如HR)都是Schema Only Account。也就是说,这些帐户都是在没有密码的情况下创建的,好处是管理员无需周期性的维护这些密码,同时也降低了攻击者使用默认密码侵入这些帐户的安全风险。我们可以通过dba_users数据字典的authentication_type字段来判断,如果是NONE,表示该account是Schema Only的。当然了,当我们确实有需要的时候,可以为这些帐户分配密码,但是为了更好的安全性,Oracle 建议您使用完毕后将它们再设置为Schema Only。

•关于Schema Only Account的一些说明:

1)可以是 administrator 和 non-administratoraccounts

2)这种account只能在data base instance中创建,不支持 ASM instance

3)可以授予 system privileges (比如CREATE ANY TABLE)和管理员角色(比如DBA)

4)可以创建对象比如tables 、procedures等(根据所授权限决定)

5)可以配置通过 single session proxy的方式连接访问

6)不能通过 data base link 使用

tips:18c中Schema Only Account不能拥有SYSDBA,SYSOPER, SYSBACKUP, SYSKM, SYSASM, SYSRAC, SYSDG这些管理权限,19c中取消了这一限制。

下面是在18.3和19.2综合体验的一个笔记,希望能给大家一点启发,后面大部分都是脚本,介绍性的话语很少,我想大家应该能看明白。

1)创建一个Schema-Only Account

CDB$ROOT@SYS>conn sys/Alpha2019#@pdb1 as sysdba;

Connected.

PDB1@SYS>CREATE USER study NO AUTHENTICATION;

User created.

PDB1@SYS>CREATE USER toms IDENTIFIED BY toms default tablespace users;

User created.

PDB1@SYS>SELECT username, password, password_versions, account_status, authentication_type

FROM dba_users

WHERE username in ('STUDY','TOMS');

CREATE USER "STUDY" NO AUTHENTICATION

DEFAULT TABLESPACE "USERS"

TEMPORARY TABLESPACE "TEMP"

PDB1@SYS>

2)AUTHENTICATION 和 NO AUTHENTICATION之间的转换

通过如下命令可以很容易的在Schema Only Account和Normal Account之间转换:

ALTER USER ... IDENTIFIED BY ...;

ALTER USER ... NO AUTHENTICATION;

说明:18c的时候Schema only accounts可以被授予所有的normal database roles和privileges,但不能是administrative privileges(比如SYSDBA, SYSOPER, SYSRAC等),否则会遇到类似如下的错误:

CDB$ROOT@cdb1>grant sysdba to study;

grant sysdba to study

*

ERROR at line 1:

ORA-40366: Administrative privilege cannot be granted to this user.

但19.2中是可以的,比如

CDB$ROOT@demo>grant sysdba to study;

Grant succeeded.

CDB$ROOT@demo>

PDB1@SYS>ALTER USER study IDENTIFIED BY study quota unlimited on users;

User altered.

PDB1@SYS>grant create session, create table to study;

Grant succeeded.

PDB1@SYS>conn study/study@pdb1

Connected.

PDB1@STUDY>

PDB1@STUDY>create table a (no int);

Table created.

PDB1@STUDY>create table b (str varchar2(32));

Table created.

PDB1@STUDY>conn sys/Alpha2019#@pdb1 as sysdba

Connected.

PDB1@SYS>grant sysdba to study;

Grant succeeded.

注意:在18c测试的时候,会遇到类似如下错误,所以必须先通过V$PWFILE_USERS 视图找到那些administrative privileges并收回。

PDB1@pdb1>ALTER USER study no authentication;

ALTER USER study no authentication

*

ERROR at line 1:

ORA-40367: An Administrative user cannot be altered to have no authentication type.

CDB$ROOT@cdb1>revoke sysdba from study;

Revoke succeeded.

CDB$ROOT@cdb1>ALTER USER study no authentication;

User altered.

CDB$ROOT@cdb1>

说明:19c(19.2)测试中,是支持administrative privileges的,所以可以直接ALTER USER study no authentication;

这个时候,study用户就不能直接连接访问了,因为已经切换为Schema Only Account了 ,示例如下:

PDB1@pdb1>conn study/study@pdb1

ERROR:

ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

PDB1@>

3)通过single session proxy方式访问

我这里用之前创建的toms用户来做proxy user,下面先在toms用户下创建个测试表

PDB1@SYS>conn sys/Alpha2019#@pdb1 as sysdba

Connected.

PDB1@SYS>grant connect, resource to toms;

Grant succeeded.

PDB1@SYS>conn toms/toms@pdb1

Connected.

PDB1@TOMS>create table test (no int );

Table created.

PDB1@TOMS>

设置study(Scheam Only Account)通过toms代理连接(简单示例,详细语法参见相关手册)

PDB1@TOMS>conn sys/Alpha2019#@pdb1 as sysdba

Connected.

PDB1@SYS>ALTER USER study GRANT CONNECT through toms;

User altered.

  连接测试

PDB1@SYS>CONNECT toms[study]/toms@pdb1

Connected.

PDB1@STUDY>show user

USER is "STUDY"

PDB1@STUDY>SELECT sys_context('USERENV','SESSION_USER') AS session_user,

sys_context('USERENV','SESSION_SCHEMA') AS session_schema,

sys_context('USERENV','PROXY_USER') AS proxy_id,

USER

FROM dual;

SESSION_USER    SESSION_SCHEMA     PROXY_ID    USER

--------------- ------------------ ----------- ------------

STUDY           STUDY              TOMS        STUDY

PDB1@STUDY>select table_name from tabs;  ##看到的是study用户下的对象

TABLE_NAME

-----------------

B

A

PDB1@STUDY>insert into a values(1);

1 row created.

PDB1@STUDY>commit;

Commit complete.

PDB1@STUDY>select * from a;

NO

----------

1

PDB1@STUDY>

4)回收single session proxy访问设置

PDB1@STUDY>conn sys/Alpha2019#@pdb1 as sysdba

Connected.

PDB1@SYS>select * from proxy_users;

PROXY  CLIENT     AUT     FLAGS

------ ---------- ------- -------------------------------------

TOMS   STUDY      NO      PROXY MAY ACTIVATE ALL CLIENT ROLES

PDB1@SYS>ALTER USER study revoke CONNECT through toms;

User altered.

PDB1@SYS>select * from proxy_users;

no rows selected

PDB1@SYS>CONNECT toms[study]/toms@pdb1

ERROR:

ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

PDB1@>

好了,本小节的简单示例就到这里,希望能给大家起到一点简单的引导示范作用,不当之处,请以实际环境和当前文档说明为准。

Oracle 19c 新特性:Schema Only Account详解相关推荐

  1. oracle中pdb,Oracle 12C新特性-CDB和PDB 详解

    最近看到好多人都在尝试Oracle中的12C新特性-容器数据库,今年3月Orcle推出了Release2版本,可以算是一个稳定版本了.下午着手尝试了一下,还是蛮不错得 1.前言 CDB与PDB是Ora ...

  2. oracle dataguard详解,Oracle 19c 新特性详解:DataGuard 中ADG的自动DML重定向

    Oracle 19c 新特性详解:DataGuard 中ADG的自动DML重定向 在前面的文章<Oracle 19c 十大新特性一览>中,我们曾经提到 Oracle 19c的一个重要增强, ...

  3. Oracle 19c 新特性:ADG的自动DML重定向增强读写分离--ADG_REDIRECT_DML

    Oracle 19c 新特性:ADG的自动DML重定向增强读写分离--ADG_REDIRECT_DML Oracle 19c 新特性之一,adg的自动 dml 重定向.就是在 ADG 环境下,连接到 ...

  4. 抢鲜体验:Oracle 19C单实例数据库安装步骤详解

    抢鲜体验:Oracle 19C单实例数据库安装步骤详解 原创: 李宏达 数据和云 今天 作者:李宏达,云和恩墨北区交付工程师. 大家一直期待的 Oracle Database 19c 今天已经提供公开 ...

  5. 【java8新特性】——Stream API详解(二)

    一.简介 java8新添加了一个特性:流Stream.Stream让开发者能够以一种声明的方式处理数据源(集合.数组等),它专注于对数据源进行各种高效的聚合操作(aggregate operation ...

  6. Spark 3.2.0 版本新特性 push-based shuffle 论文详解(一)概要和介绍

    前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...

  7. Spark 3.2.0 版本新特性 push-based shuffle 论文详解(二)背景和动机

    前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...

  8. 快讯:Oracle 19c 新特性及官方文档抢鲜下载

    随着2月的春风吹拂,Oracle 19c 的第一个 Exadata 版本发布将马上发布出来,等待可测试版本的朋友们马上即可如愿了. 目前官方文档已经可以公开下载到,我为大家整理了一些重要文档,包括概念 ...

  9. Oracle 19c 新特性:ADG的自动DML重定向增强读写分离

    在前面的文章<Oracle 19c 十大新特性一览>中,我们曾经提到 Oracle 19c的一个重要增强,就是ADG的自动DML转发: 这个新特性的功能是:将偶然发送到ADG上的DML操作 ...

最新文章

  1. NHibernateLinq简单的CRUD操作
  2. html 背景设为透明背景图片,Three.js中通过透明渲染设置默认背景图片
  3. Leetcode 98. 验证二叉搜索树 解题思路及C++实现
  4. springboot启动报错:org/springframework/expression/ParserContext
  5. 类实现Java模板方法模式中的HookMethod实现
  6. LightOJ 1026 桥 1063 割点
  7. Github常用搜索指令(毕设资料搜索必备)
  8. 【2015年第4期】基于电力运营大数据分析实现节能减排
  9. HP 1218 无线设置
  10. 别扯了,这才是应对高并发的正确处理思路。
  11. Linux - CentOS基础
  12. 京东:网传通过 Bug 抢茅台是假消息;罗永浩回应带货价格非「全网最低」;Rust 文档团队解散 | 极客头条...
  13. c语言如何框出视频或图像中的车辆,视频图像中的车辆检测跟踪和分类
  14. Hive窗口函数保姆级教程
  15. Java FTP 下载文件和文件夹
  16. win11系统中文名改英文名(win11、win10修改用户名)超详细图文
  17. 红色小吃加盟网站源码 织梦dede模板[带手机版数据同步]
  18. 2017年sfdc工作总结_Name 顺序
  19. Mac如何打开企业微信内置浏览器控制台
  20. Re:从零开始的DS学习之查找算法

热门文章

  1. 在Kubernetes上部署Hyperledger Fabric
  2. raspberry pi_书评:“ Raspberry Pi for Secret Agents”的使用效果不佳
  3. 开源游戏引擎_Hatchit:开源游戏引擎
  4. es6 core-decorators.js
  5. linux内存专题,linux内存浅析
  6. python图像分类代码_Kaggle—So Easy!百行代码实现排名Top 5%的图像分类比赛
  7. java哈喽word,JavaWeb之HelloWord
  8. 逆向透视表 python_Python实现数据的透视表
  9. java同时输出多个数字_java从命令行接收多个数字,求和之后输出结果
  10. Vue.js 第1章 Vue常用指令学习