使用product_user_profile来实现用户权限的设定
我们有时候在以普通用户登录SQL*Plus的时候,会碰到下面的错误提示:
Error accessing PRODUCT_USER_PROFILE
Warning: Product user profile information not loaded!
You may need to run PUPBLD.SQL as SYSTEM
其实在实际意义上这只是一个警告而已,并不是真正的错误,遇到这个提示,并不会影响我们正常使用SQL*Plus,也不会对数据库功能产生影响。
如果数据库是使用dbca创建的那么不用担心这个问题,通常是我们手动创建数据库的情况下,忘了执行一些脚本才导致出现这样的警告。PRODUCT_USER_PROFILE其实有很强大的功能,这是SYSTEM模式下的一个表,在此表中存在的数据可以让客户端程序登入的时候检查是否在命令的执行上有什么限制。基本上我们是以它来限制SQL*Plus这个客户端程序(目前好像也只有这个程序才会去自动检查这张表:D)
如果不想看到这个警告,作如下操作:
以SYSTEM用户登入SQL*Plus,然后执行PUPBLD.SQL,这个文件通常在$ORACLE_HOME/sqlplus/admin目录中。
SQL> @$ORACLE_HOME/sqlplus/admin/pupbld.sql
执行完毕以后,可以desc product_user_profile来验证一下改表已经创建,并且熟悉一下表的结构。
以上不是这篇小文章的重点,下面我们要利用这张表来限制SCOTT用户不能执行DROP命令,即使SCOTT用户拥有DROP TABLE的权限。
SQL> insert into product_user_profile (
2 product, userid, attribute, char_value)
3 values (
4 'SQL*Plus','SCOT%','DROP','DISABLED');
1 row inserted
Executed in 0.01 seconds
SQL> commit;
Commit complete
Executed in 0 seconds
然后退出SYSTEM用户,用SCOTT用户登录,作个测试:
SQL> create table t_test_profile(
2 id number);
Table created.
Elapsed: 00:00:00.10
SQL> drop table t_test_profle;
SP2-0544: invalid command: drop
这就是product_user_profile的作用,回顾一下:
1。如果我们把DROP改成CREATE或者UPDATE那么就对用户禁止了这些命令。
2。从上面的insert语句,我们可以看到对于用户的限制支持通配符,所有以SCOT开头的用户都不能执行指定的命令。
3。修改了product_user_profile内容,用户必须重新登录SQL*Plus,修改才会生效,也就是只有在登录的时候,SQL*Plus才会检查一遍product_user_profile表中的内容。
摘抄:http://oracle.chinaitlab.com/induction/20880.html
使用product_user_profile来实现用户权限的设定的更多相关文章
- <nginx.conf> nginx用户权限
Nginx用户权限 在nginx.conf文件的第一行一般是设置用户的地方(编译安装nginx时的参数--user=<user>也是指定用户的地方),如 user www www; 如不指 ...
- 从零开始学 Java - Spring AOP 实现用户权限验证
每个项目都会有权限管理系统 无论你是一个简单的企业站,还是一个复杂到爆的平台级项目,都会涉及到用户登录.权限管理这些必不可少的业务逻辑.有人说,企业站需要什么权限管理阿?那行吧,你那可能叫静态页面,就 ...
- C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 用户权限树的实现 -- 权限递归树
业务系统里经常会需要计算类似的树形权限树的业务需求 1:往往会有一些需求,a 对 b 有权限, b对c 有权限, 等等. 2:还需要很直观的看到,整个权限的树形关系,一目了然的那种. 3:程序调用简单 ...
- mongodb 3.2 用户权限管理配置
使用mongodb 有段时间了,由于是在内网使用,便没有设置权限,一直是裸奔. 最近有时间,研究了下mongodb 3.2 的用户权限配置,网上有许多用户权限配置的文章,不过大多是之前版本,有些出入, ...
- ubuntu12.04+proftpd1.3.4a的系统用户+虚拟用户权限应用实践
目录: 一.什么是Proftpd? 二.Proftpd的官方网站在哪里? 三.在哪里下载? 四.如何安装? 1)系统用户的配置+权限控制 2)虚拟用户的配置+权限控制 一.什么是Proftpd? ...
- Linux_04------Linux权限的设定
三种权限 */ /** * 修改文件所有者 * chown 用户名 文件名 */
- 如何实现Oracle修改用户权限 .
这里将介绍Oracle修改用户权限的实现过程,包括一些权限管理方面的东西.希望通过本文能对大家了解Oracle修改用户权限有所帮助. ORACLE数据库用户与权限管理 ORACLE是多用户系统,它允许 ...
- linux用户配置和用户权限
一.查看用户: (1)在终端里.输入:cat /etc/passwd,查看/etc/passwd文件就行了.(2)看第三个参数:500以上的,就是后面建的用户了.其它则为系统的用户. 查看当前在线用户 ...
- linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制)
linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制) 发表于2012//07由feng linux 本身的ugo rwx的权限,对于精确的权限控制很是力不从心的,ac ...
随机推荐
- asp.net string有多行文字
用如下格式设置
- mysql连接踩坑
本机安装的是wamp,集成了mysql.php.apache.安装了sqlyog客户端. 1.错误代码2003 证明mysql服务没有开启,此时需要开启mysql服务,开启了wamp 2.错误代码10 ...
- 2017~ROS暑期学校~分享
http://www.robotics.sei.ecnu.edu.cn/ROS2017/ ---- 往年暑期学校活动:2015年,2016年 报名开始时间7月2日晚10点:暑期学校报名,机器人挑战赛报 ...
- 【剑指offer】数组中的逆序对。C++实现
原创文章,转载请注明出处! 博客文章索引地址 博客文章中代码的github地址 # 题目 # 思路 基于归并排序的思想统计逆序对:先把数组分割成子数组,再子数组合并的过程中统计逆序对的数目.统计逆序对 ...
- 类的初始化__init__使用
初始化方法: 作用: 对新创建的对象添加属性 语法: class 类名(继承列表): def __init__(self [, 形参列表]): 语句块 [] 代表中的内容可省略 说明: 1. 实始化方 ...
- Android学习笔记之Android Studio下创建menu布局文件
1.创建menu文件夹 Android Studio项目中如果没有menu文件夹,在res文件夹右键,new-Android resource directory: 则会弹出下图对话框,在Resour ...
- Java [Leetcode 167]Two Sum II - Input array is sorted
题目描述: Given an array of integers that is already sorted in ascending order, find two numbers such th ...
- Typescript : 遍历Array的方法:for, forEach, every等
方法一,for…of 这个貌似是最常用的方法,angular 2中HTML语法绑定也是要的这种语法. let someArray = [1, "string", false]; f ...
- 如何快速编写和调试 Emit 生成 IL 的代码
.NET Core/.NET Framework 的 System.Reflection.Emit 命名空间为我们提供了动态生成 IL 代码的能力.利用这项能力,我们能够在运行时生成一段代码/一个方法 ...
- 《selenium2 python 自动化测试实战》(17)——几个cookies操作
之前我们已经学过利用cookies跳过验证码登录了,那时候我们用的方法是add_cookie()方法,这里再给大家介绍两个,一般情况下我们用不到,了解一下就可以,而且如果真的用到的时候百度也很快的: ...