oracle中實現某個用戶truncate 其它用戶下的表
oracle文檔中對truncate權限的要求是需要某表在當前登錄的用戶下,或者當前登錄的用戶有drop any table的權限。
但是如果不滿足第一個條件的情況下,要讓某用戶滿足第二個條件就導致權限過大了。
參考網上的討論,可以使用存儲過程來時間。
例如有兩個用戶 u1,u2,u1下有表 test1a
現在想要實現u2能 truncate u1下的表 test1a。
可以使用用戶u1創建存儲過程,
create procedure u1.stgtruncate(table_name in varchar2) as
begin
execute immediate ‘truncate table ‘||table_name;
然後將該存儲過程的權限賦予u2,
grant execute on u1.stgtruncate to u2;
現在登錄u2,通過執行如下sql即可truncate u1下的表test1a
call u1.stgtruncate(‘test1a‘);
以上。
oracle中實現某個用戶truncate 其它用戶下的表
相關推薦
oracle中實現某個用戶truncate 其它用戶下的表
oracl 現在 兩個 想要 grant 權限 begin te pro 第一個 oracle文檔中對truncate權限的要求是需要某表在當前登錄的用戶下,或者當前登錄的用戶有drop any table的權限。 但是如果不滿足第一個條件的情況下,要讓某用戶滿足第二個條
oracle中怎樣讓一個用戶查詢其它用戶的trigger?
TP lec 其他 1.2 cee copy IT edit ola 在工作期間,有時候遇到這種需求,需要將一個用戶下的trigger查詢權限授予給其他的用戶怎樣將某個用戶的trigger查詢權限,授予其他用戶? 方法一:授予 create any trigger權限。這個
oracle中drop、delete和truncate的區別
win style 刪除數據 oracl 數據庫 不能 存在 表空間 結構 oracle中可以使用drop、delete和truncate三個命令來刪除數據庫中的表, 1. delete和truncate都是刪除表中的內容而不能刪除表的結構,而drop則是刪除表的結構和內容
oracle中實現md5加密
mobile var mob decode null 函數 加密 raw oracl 記得要實現md5加密,在oracle 11g 和 12c中是有不同的方式的,在12c中較為簡單,記得直接有預定義的函數。 但是在11g中要實現就需要自己進行一些額外的處理,以下給出一個m
oracle中實現自增id
acl pac primary 但是 數據庫 AR not select 簡單 在一些數據庫(例如mysql)中,實現自增id只要在建表的時候指定一下即可, 但是在oracle中要借助sequence來實現自增id, 要用上自增id,有幾種方式: 1.直接在inser
除錯經驗——使用自定義函式在Oracle中實現類似LISTAGG函式的行轉列(字串連線)功能
問題描述: LISTAGG函式是一個很實用的函式,但僅在Oracle 11.2以後的版本中才有。 生產環境中有個資料庫是Oracle 11.1,需要行轉列,但並不能使用LISTAGG函式。 解決方法: 參考以下文章: https://oracle-base.com/artic
在Oracle中查詢某個時間段的記錄時,sql的寫法
select * from Oracle.alarmLog where alarmtime between to_date('2007-03-03 18:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2007-09-04 18:00
ORACLE中實現類似SQLSERVER中IDENTITY(1,1)序號自增的功能
最近在做一個把SQL SERVER中的資料庫的表同步到ORACLE 中,排除解決了了一系列如型別不匹配等產生的錯誤後,終於將資料同步過來了,可是又發現了一個新問題:SQL SERVER中源表的ID是通過IDENTITY(1,1)自增的,ORACLE中的表示通過sequen
oracle中實現擷取字串(substr)、查詢字串位置(instr)、替換字串(replace)
(1)oracle中實現擷取字串:substr substr(string, start_position, [length]) 其中,string是元字串,start_position為開始位
oracle中查詢某個時間段內的資料
例子: 1)select * from tableName t where start_times > to_date('2015/6/26 10:00:00','yyyy/mm/dd hh24:mi:ss'); 2)select * from tableName t
Oracle中刪除某個使用者下的所有資料呢
//刪除表空間 DROP TABLESPACE tablespacename INCLUDING CONTENTS AND DATAFILES; //刪除使用者 drop user username cascade;
oracle動態更新(將A表中的某個欄位的值賦給B表中的某個欄位)
通過Update語句將A表的某列值修改為B表中的指定列的值時,所用的sql語句在Oracle和SQL Server中是不一樣的, 程式碼如下: Oracle中的語句: UPDATE A SET A.COL1=(SELECT B.COL1 from B where A
5-在ORACLE中實現SELECT TOP N
由於ORACLE不支援SELECT TOP語句,所以在ORACLE中經常是用ORDER BY跟ROWNUM的組合來實現SELECT TOP N的查詢。 簡單地說,實現方法如下所示: SELECT 列名1...列名n FROM (SELECT 列名
shell腳本中實現自動判斷用戶有無密碼
腳本 shell 在最近完成老師布置的作業的時候遇到了如何讓shell腳本中的命令自動判斷一個用戶是否已設置密碼的問題,雖然看似不是很難的一個問題,但是在這一功能實現的過程中卻包含了許多細小的而重要的知識。剛開始小編對此很是頭疼,雖然我們查看一個用戶是否有密碼並不是很難,直接cat /etc/shad
oracle批量刪除某個用戶下的所有表
devel all 查詢 sele rom 所有 log where 刪除 打開sql developer,輸入如下語句,把USERNAME替換為需要刪除的的用戶名 SELECT ‘DROP table ‘||table_name||‘;‘ FROM all_tab
關於Oracle中sys、system和Scott用戶下的數據庫連接問題
連接 con str sta sys oracle cot conn nag system默認:manager sys默認:change_on_install 使用SQL Plus登錄數據庫時,system使用密碼manager可直接登錄。 由於為自己的密碼時更改過
oracle 中如何查詢當前用戶可以看到的表名、表對應的所有字段
tables .com pre column inner bsp nts .data code 前言:利用 oracle 的視圖來查詢表的相關信息。 oracle 查詢當前用戶下的表名 + 表註釋 select t.table_name tableName, f.co
Vue項目中實現用戶登錄及token驗證
技術 store tro urn const bsp inpu 思路 let 在前後端完全分離的情況下,Vue項目中實現token驗證大致思路如下: 1、第一次登錄的時候,前端調後端的登陸接口,發送用戶名和密碼 2、後端收到請求,驗證用戶名和密碼,驗證成功,就給前端返回一個
Oracle查看某個用戶下所有表的記錄總數和所有表的字段總數、記錄數
sele user details oracl sys where col 字段 rac https://blog.csdn.net/zhihaoma/article/details/78607368 如我想查看用戶M下的所有表的總記錄數: SELECT SUM(num_
用oracle查詢一個表中的一個欄位內容包含另一個表中的某個欄位的值
select * from table1 where exists (select 1 from table2 where table1.columA like '%' || table2.columB || '%')