新闻详情

新闻详情

首页 / 资讯中心 / 详情

Oracle数据库基础之5_权限管理

发布时间:2026/10/1 8:44:18来源:尧图网络
Oracle数据库基础之5_权限管理
Schema模式是一系列对象的集合。一个模式只能够被一个数据库用户所拥有并且模式的名称与这个用户的名称相同。ORACLE 数据库中的每个用户都拥有一个唯一的模式他所创建的所有模式对象都保存在自己的模式中。模式对象的类型有表、索引、簇、触发器、PL/SQL、序列、同义词、视图、存储过程和存储函数等。目前没有dba_schemas这样的视图只有dba_users和dba_objects这样的视图。SQL conn hr/123456–上面的hr表示用户SQL select count(*) from hr.employees;–上面的hr表示schemaProfile现实中使用profile的原因不同的用户可能需要做不同的限制这样就需要不同的profile如果限制要求都一样可以直接使用default的profiledefault profile的值也是可以修改的比如ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_MAX 5场景1一个default profile默认登录时输错密码10次就锁定用户但是一个用户在PDA环境下手工输入密码时容易出错要求该用户错误1000才锁定但是不能影响其他用户错误10次就锁定这就需要新建一个允许错误1000次的profile单独给这个用户使用场景2新上线一套程序为防止程序bug必须设置这个程序的用户只能创建50个连接其他用户连接的不受限制就需要建立一个只有50个连接的profile给这个新上线程序的用户使用SELECT*FROMdba_profilescreateprofile test123limitPASSWORD_LOCK_TIME2FAILED_LOGIN_ATTEMPTS100SELECT*FROMdba_profilescreateusertest identifiedby123456profile test123createusertest1 identifiedby123456selectusername,profilefromdba_userswhereusernamein(TEST,TEST1)一般DBA搭建好一套环境后就改如下这个参数设置为unlimited即密码永不过期alter PROFILE default LIMIT PASSWORD_LIFE_TIME unlimitedcreate user建立一个用户后如果不授权那么这个用户什么都干不了必须给这个用户授于一些对应的权限SQLcreateusertest identifiedby123456defaulttablespaceUSERS;SQLconn test/123456ERROR: ORA-01045:userTEST lacksCREATESESSIONprivilege;logon deniedSQLgrantconnect,resource,createview,unlimitedtablespacetotest;备注实际工作中一般授予两个角色connectresouce外加create view,unlimited tablespace两个系统权限就可以满足基本的使用要求SQLselect*from(SELECT*FROMDBA_SYS_PRIVSWHEREGRANTEETESTUNIONALLSELECT*FROMDBA_SYS_PRIVSWHEREGRANTEEIN(SELECTGRANTED_ROLEFROMDBA_ROLE_PRIVSWHEREGRANTEETEST))orderby1;grant权限不会覆盖原有权限只会追加进去不要担心SQLSELECT*FROMDBA_SYS_PRIVSWHEREGRANTEETEST;SQLgrantselectanytabletotest;SQLSELECT*FROMDBA_SYS_PRIVSWHEREGRANTEETEST;–没有create index、insert table、update table、delete table、drop table这种权限是因为一个用户对其schema下已存在对象具有所有操作权限。SQL grant create table to test;Grant succeeded.以下操作都会报错ORA-00990SQL grant create index to test;SQL grant delete table to test;SQL grant insert table to test;SQL grant update table to test;SQL grant drop table to test;ORA-00990: missing or invalid privilegeWITH ADMIN OPTION的作用,表示被授权的用户可以把该系统权限再授给其他用户SQLcreateusertest1 identifiedby123456;SQLcreateusertest2 identifiedby123456;SQLgrantconnect,resourcetotest1;Grantsucceeded.SQLconn test1/123456Connected.SQLgrantresourcetotest2;ERROR at line1: ORA-01031: insufficientprivilegesSQLgrantconnect,resourcetotest1WITHADMINOPTION;Grantsucceeded.SQLconn test1/123456Connected.SQLgrantresourcetotest2;Grantsucceeded一个用户A被授予了resource角色的系统权限后这个A用户可以创建表A可以看到自己创建的表但是这个A用户看不到其他用户创建的表除非给这个用户授予select any table的系统权限或给这个用户授予grant select on schema1.table1 to A的对象权限然后这个A用户就查询schema1.table1表了权限的传递继承with admin option --针对系统权限回收权限时不会级联回收站在安全角度看是很不安全的故实际工作中几乎很少用到with grant option --针对对象权限回收权限时会自动级联回收实际工作中还是挺常见权限的授予要慎重一旦授予后面要回收会很难回收了可能会引发对象失效继而影响生产环境。比如给一个用户授予了select any table权限用户创建了一个存储过程存储过程里面使用了select any table权限去访问很多其他表一旦要回收用户这个select any table权限那么存储过程中就无法访问其他表这个存储过程就会失效会报错基于这个存储过程的业务就受影响了查询某个用户具有的所有系统权限select*from(SELECT*FROMDBA_SYS_PRIVSWHEREGRANTEE用户名UNIONALLSELECT*FROMDBA_SYS_PRIVSWHEREGRANTEEIN(SELECTGRANTED_ROLEFROMDBA_ROLE_PRIVSWHEREGRANTEE用户名))orderby1;查询某个用户具有的所有对象权限SELECT*FROMDBA_TAB_PRIVSWHEREGRANTEE用户名UNIONALLSELECT*FROMDBA_TAB_PRIVSWHEREGRANTEEIN(SELECTGRANTED_ROLEFROMDBA_ROLE_PRIVSWHEREGRANTEE用户名);普通用户访问某个数据字典视图需要赋予这个数据字典视图对应的底层表的对象权限SQLconn test/123456SQLselectcount(*)fromv$session;ERROR ORA-00942:tableorviewdoesnotexistSQLconn test/123456assysdbaSQLgrantselectonv$sessiontotest;ERROR ORA-02030: can onlyselectfromfixedtables/viewsSQLgrantselectonv_$sessiontotest;Grantsucceeded.SQLconn test/123456SQLselectcount(*)fromv$session;COUNT(*)----------35查看resource角色拥有的系统权限SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE ‘RESOURCE’对现有的角色比如resource增加系统权限create viewSQL grant create view to resource;假如10个用户都被授予了resource角色这个10个用户都没有create view权限此时单独给resource角色授予create view的权限后这10个用户就可以拥有了create view权限避免了一一对这个10个用户授予create view权限
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

实时流处理架构实战:Flume+Kafka+Flink+Structured Streaming方案详解 2026/10/1 11:08:43

实时流处理架构实战:Flume+Kafka+Flink+Structured Streaming方案详解

1. 从业务痛点聊起:为什么实时流处理成了刚需过去几年,我参与过不少数据平台类的项目,发现一个共性现象:几乎所有团队在建设数据中台或BI体系时,都会先做离线数仓,稳定跑通后再考虑实时链路。可一旦业务方尝…

阅读更多 →
C语言结构体大小计算:内存对齐规则与工程实践详解 2026/10/1 11:08:37

C语言结构体大小计算:内存对齐规则与工程实践详解

结构体大小这个问题,几乎是每个学C语言的人都会撞上的墙。学完基本语法,写了个结构体,一sizeof算出来,怎么跟想象中“成员大小加起来”不一样?多出来的那几个字节去哪了?我之前带过的不少新人,项…

阅读更多 →
纯前端JS实现本地文件拆分与合并:File、Blob与Stream实战 2026/10/1 11:08:37

纯前端JS实现本地文件拆分与合并:File、Blob与Stream实战

我刚做完一个挺有意思的小项目:一个纯前端、基于JS实现的文件合并拆分在线工具。起因很简单——经常要把几十个TXT日志按日期拆开,或者反过来把一堆分片合成一个大压缩包。市面上那些在线工具大部分得先把文件上传到服务器,一个是慢&#xff…

阅读更多 →
多空动能背离指标详解:识别趋势力竭的技术分析工具 2026/10/1 11:08:30

多空动能背离指标详解:识别趋势力竭的技术分析工具

1. 这个指标到底在说什么做交易的人,大概都遇到过这种场景:价格明明还在往上冲,自己刚追进去,结果立刻被套在高点;或者是跌了很久觉得到底了,抄进去之后发现下面还有地下室。事后复盘一看,很多次…

阅读更多 →
如何用认知去开发认知商品,再去迭代认知本身实证案例:矩规评级定位定级定价三定合一硬科技体系 2026/10/1 11:08:23

如何用认知去开发认知商品,再去迭代认知本身实证案例:矩规评级定位定级定价三定合一硬科技体系

中国终于跑出一套「定位定级定价三定合一」的硬科技体系|技术领域的穆迪,正在合肥诞生今天我们拆解一套国内几乎没有人做、也极少有人看懂的底层范式—— 一套完全源自中国产业实战、全流程标准化、全链路可复现、可审计、可联邦分布式部署、可全球通用的…

阅读更多 →
Java驯服自动化立库:WMS/WCS设备调度实战与核心机制解析 2026/10/1 11:08:17

Java驯服自动化立库:WMS/WCS设备调度实战与核心机制解析

凌晨两点,值班电话把我吵醒。电话那头仓管员声音很急:3号库堆垛机停了,任务卡在待回令,二十多个出库单全堵在路上。我一边翻身下床,一边回想这个场景——做WMS的我太熟悉了,仓库里轰隆作响的堆垛机、机械臂…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉