当前位置:网站首页>Insufficient permissions
Insufficient permissions
2022-07-07 21:04:00 【Full stack programmer webmaster】
Hello everyone , I meet you again , I'm the king of the whole stack .
For example, the following stored procedure is dba Create a tablespace 、 Create a user and grant permissions to this user :
create or replace procedure createTS(tname in varchar2)
is PRAGMA AUTONOMOUS_TRANSACTION; v_createsql varchar2(400); vtbsname varchar2(40); begin vtbsname := tname; v_createsql:=’CREATE TABLESPACE ‘|| vtbsname ||’ DATAFILE ”F:\APP\ADMINISTRATOR\ORADATA\’|| vtbsname ||’.dbf” SIZE 30M AUTOEXTEND ON NEXT 10M’; Dbms_Output.Put_Line(v_createsql); execute immediate v_createsql; v_createsql:=’CREATE USER ‘|| vtbsname ||’ identified by ‘|| vtbsname ||’ default tablespace ‘||vtbsname; Dbms_Output.Put_Line(v_createsql); execute immediate v_createsql; — v_createsql:=’grant ALTER SESSION,CREATE CLUSTER,CREATE DATABASE LINK,CREATE SEQUENCE,CREATE SESSION ,CREATE SYNONYM,CREATE VIEW to ‘|| vtbsname; — v_createsql:=’GRANT CREATE SESSION,CREATE CLUSTER,CREATE INDEXTYPE,CREATE OPERATOR,CREATE PROCEDURE,CREATE SEQUENCE,CREATE TABLE,CREATE TRIGGER,CREATE TYPE,INSERT ANY TABLE,UPDATE ANY TABLE,SELECT ANY TABLE,DELETE ANY TABLE to ‘|| vtbsname; v_createsql:=’GRANT connect,resource to ‘|| vtbsname; Dbms_Output.Put_Line(v_createsql); execute immediate v_createsql;
end createTS;
PROCEDURE CREATETS The compiled
Compile and pass , For example, the following operation
set serveroutput on; execute createTS(‘nk_develop14061342’);
In line 28 Error starting running command on : execute createTS(‘nk_develop14061343’) Error reporting : ORA-01031: Insufficient authority ORA-06512: stay “NK_DEVELOP131021.CREATETS”, line 22 ORA-06512: stay line 1 01031. 00000 – “insufficient privileges” *Cause: An attempt was made to change the current username or password without the appropriate privilege. This error also occurs if attempting to install a database without the necessary operating system privileges. When Trusted Oracle is configure in DBMS MAC, this error may occur if the user was granted the necessary privilege at a higher label than the current login. *Action: Ask the database administrator to perform the operation or grant the required privileges. For Trusted Oracle users getting this error although granted the the appropriate privilege at a higher label, ask the database administrator to regrant the privilege at the appropriate label. CREATE TABLESPACE nk_develop14061343 DATAFILE ‘F:\APP\ADMINISTRATOR\ORADATA\nk_develop14061343.dbf’ SIZE 30M AUTOEXTEND ON NEXT 10M CREATE USER nk_develop14061343 identified by nk_develop14061343 default tablespace nk_develop14061343 GRANT connect,resource to nk_develop14061343
The reason is that the permission is insufficient when running to grant permission
Find a post such as the following :http://bbs.csdn.net/topics/360053754
Finally found the problem , It turns out that I have no permission . Although the current user has permission to run statements , However, it is necessary to explicitly assign permissions to the current user in the stored procedure . The following is the information I found , Post it for everyone to see . ===================== 【IT168 Technical documentation 】 We know , User owned role Permissions are not available in stored procedures . Such as :
SQL> select * from dba_role_privs where grantee=’SUK’;
GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE ———— ———— ———— ———— SUK DBA NO YES SUK CONNECT NO YES SUK RESOURCE NO YES
– user SUK Have DBA This role – Create another test stored procedure : create or replace procedure p_create_table is begin Execute Immediate ‘create table create_table(id int)’; end p_create_table;
– Then test SQL> exec p_create_table;
begin p_create_table; end;
ORA-01031: Insufficient authority ORA-06512: stay ”SUK.P_CREATE_TABLE”, line 3 ORA-06512: stay line 1
– Be able to see . Even if you have DBA role. You can't create a table .role Not available in stored procedures .
– In this case , We generally need to explicitly perform system permissions . Such as grant create table to suk; – But this method is too troublesome , Sometimes it may take a lot of authorization to run stored procedures – actually ,oracle Provides us with the ability to use in stored procedures role The method of authority : – Change stored procedures , increase Authid Current_User When stored procedures can use role jurisdiction . create or replace procedure p_create_table Authid Current_User is begin Execute Immediate ‘create table create_table(id int)’; end p_create_table;
– Try running again : SQL> exec p_create_table;
PL/SQL procedure successfully completed
– It has been able to run .
original Is to use caller permissions
Therefore, when creating stored procedures, you need to add Authid Current_User The permissions of the current user
create or replace procedure createTS(tname in varchar2) Authid Current_User is
To dynamically create table spaces in stored procedures, for example, the following steps . 1、 Need to adopt Oracle Autonomous affairs .
Add in the stored procedure PRAGMA AUTONOMOUS_TRANSACTION; Clause 2、 You need to display the permissions of the sub configuration to create the tablespace , Otherwise, the prompt authority is insufficient . grant alter tablespace to TEST; grant create tablespace to TEST;
Thank the website owner
http://www.dbfaq.net/FAQ/FixupQL.aspx?QuestionID=112
http://bbs.csdn.net/topics/360053754
Publisher : Full stack programmer stack length , Reprint please indicate the source :https://javaforall.cn/116452.html Link to the original text :https://javaforall.cn
边栏推荐
- object-c编程tips-timer「建议收藏」
- Codesonar enhances software reliability through innovative static analysis
- [concept of network principle]
- [uvalive 6663 count the regions] (DFS + discretization) [easy to understand]
- 如何满足医疗设备对安全性和保密性的双重需求?
- Differences and connections between MinGW, mingw-w64, tdm-gcc and other tool chains "suggestions collection"
- 如何满足医疗设备对安全性和保密性的双重需求?
- 死锁的产生条件和预防处理[通俗易懂]
- CodeSonar如何帮助无人机查找软件缺陷?
- 微服务远程Debug,Nocalhost + Rainbond微服务开发第二弹
猜你喜欢
Codesonar Webinar
C语言 整型 和 浮点型 数据在内存中存储详解(内含原码反码补码,大小端存储等详解)
Small guide for rapid formation of manipulator (12): inverse kinematics analysis
【C语言】指针进阶---指针你真的学懂了吗?
Small guide for rapid formation of manipulator (11): standard nomenclature of coordinate system
The latest version of codesonar has improved functional security and supports Misra, c++ parsing and visualization
Mongodb learn from simple to deep
Static analysis of software defects codesonar 5.2 release
Ubuntu安装mysql8遇到的问题以及详细安装过程
AADL inspector fault tree safety analysis module
随机推荐
Codeforces Round #296 (Div. 2) A. Playing with Paper[通俗易懂]
ERROR: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
恶魔奶爸 B1 听力最后壁垒,一鼓作气突破
Phoenix JDBC
Details of C language integer and floating-point data storage in memory (including details of original code, inverse code, complement, size end storage, etc.)
Solve the problem that the executable file of /bin/sh container is not found
Validutil, "Rethinking the setting of semi supervised learning on graphs"
Le capital - investissement est - il légal en Chine? C'est sûr?
Lingyun going to sea | yidiantianxia & Huawei cloud: promoting the globalization of Chinese e-commerce enterprise brands
Nebula Importer 数据导入实践
Differences and connections between MinGW, mingw-w64, tdm-gcc and other tool chains "suggestions collection"
开户必须往账户里面赚钱吗,资金安全吗?
Dachang classic pointer written test questions
最新版本的CodeSonar改进了功能安全性,支持MISRA,C ++解析和可视化
How does codesonar help UAVs find software defects?
Apifox interface integrated management new artifact
开户还得用身份证银行卡安全吗,我是小白不懂
如何满足医疗设备对安全性和保密性的双重需求?
恶魔奶爸 B2 突破语法,完成正统口语练习
恶魔奶爸 指南帖——简易版