當前位置:首頁 » 存儲配置 » 查看存儲過程許可權

查看存儲過程許可權

發布時間: 2024-05-18 17:18:33

A. 如何修改mysql 存儲過程許可權

方法如下:

  1. 修改mysql 存儲過程的definer
    修改mysql.proc表 的definer欄位


update mysql.proc set definer='root@%' where db='servant_591up'; UPDATE `mysql`.`proc` SET `definer`='root00@%' WHERE `db`='test' AND `name`='jjjj' AND `type`='PROCEDURE'; UPDATE `mysql`.`proc` SET `definer`='wtc_678869@%' WHERE `db`='servant_591up' AND `type`='PROCEDURE';


2.修改sql security

ALTER PROCEDURE www SQL SECURITY INVOKER ; ALTER PROCEDURE www SQL SECURITY DEFINER ;



(1)MySQL存儲過程是通過指定SQL SECURITY子句指定執行存儲過程的實際用戶;

(2)如果SQL SECURITY子句指定為DEFINER,存儲過程將使用存儲過程的DEFINER執行存儲過程,驗證調用存儲過程的用戶是否具有存儲過程的execute許可權和DEFINER用戶是否具有存儲過程引用的相關對象的許可權;

(3)如果SQL SECURITY子句指定為INVOKER,那麼MySQL將使用當前調用存儲過程的用戶執行此過程,並驗證用戶是否具有存儲過程的execute許可權和存儲過程引用的相關對象的許可權;

(4)如果不顯示的指定SQL SECURITY子句,MySQL默認將以DEFINER執行存儲過程。

3.執行存儲過程授權

GRANT EXECUTE ON test.* TO 'wtc'@'%'; GRANT CREATE ROUTINE,ALTER ROUTINE, SELECT,CREATE, INSERT, UPDATE, DELETE, EXECUTE ON test.* TO 'wtc'@'%' IDENTIFIED BY '111111'


CREATE ROUTINE : 創建存儲過程的許可權
ALTER ROUTINE : 修改存儲過程的許可權

4.刪除用戶

REVOKE all ON test.* FROM wtc@'%'


DELETE FROM user WHERE User='user_name' and Host='host_name';

FLUSH PRIVILEGES;

好文要頂關注我

B. 如何實現只授予用戶查看存儲過程定義的許可權

如何授予某個用戶只能查看某些存儲過程的定義許可權,而不能讓用戶去修改、執行存儲過程。看似簡單的問題,卻因為從沒有碰到這樣的需求。花了點時間才梳理、總結清楚。

關於ORACLE賬號的許可權問題,一般分為兩種許可權:

系統許可權: 允許用戶執行特定的資料庫動作,如創建表、創建索引、創建存儲過程等

對象許可權: 允許用戶操縱一些特定的對象,如讀取視圖,可更新某些列、執行存儲過程等

像這種查看存儲過程定義的許可權為對象許可權,但是我們還是首先來看看關於存儲過程的系統許可權吧:

PRIVILEGE NAME PROPERTY--------- ---------------------------------------- -----------140 CREATE PROCEDURE 0-141 CREATE ANY PROCEDURE 0-142 ALTER ANY PROCEDURE 0-143 DROP ANY PROCEDURE 0-144 EXECUTE ANY PROCEDURE 0-241 DEBUG ANY PROCEDURE 0

如上所示,關於存儲過程的系統許可權一般有六種: CREATE PROCEDURE、CREATE ANY PROCEDURE、 ALTER ANY PROCEDURE、DROP ANY PROCEDURE、 EXECUTE ANY PROCEDURE、DEBUG ANY PROCEDURE. 那麼關於存儲過程的對象許可權又有那些呢? 如下例子所示,在用戶ESCMUSER下創建存儲過程PROC_TEST

CREATE OR REPLACE PROCEDURE ESCMUSER.PROC_TESTASBEGINDBMS_OUTPUT.PUT_LINE('It is only test');END;

使用system用戶創建用戶TEMP,如下所示

SQL> create user temp identified by temp;User created.SQL> grant connect,resource to temp;Grant succeeded.

在用戶ESCMUSER下將存儲過程PROC_TEST的所有許可權授予給用戶TEMP。 那麼我們發現存儲過程的對象許可權只有EXECUTE、DEBUG許可權

SQL> COL GRANTEE FOR A12;SQL> COL TABLE_NAME FOR A30;SQL> COL GRANTOR FOR A12;SQL> COL PRIVILEGE FOR A8;SQL> SELECT * FROM USER_TAB_PRIVS_MADE WHERE GRANTEE='TEMP';GRANTEE TABLE_NAME GRANTOR PRIVILEGE GRA HIE---------- --------------------- ------------ --------------------------- --- ---TEMP PROC_TEST ESCMUSER DEBUG NO NOTEMP PROC_TEST ESCMUSER EXECUTE NO NOSQL>

將存儲過程PORC_TEST的許可權從TEMP用戶收回,然後授予用戶TEMP關於存儲過程PROC_TEST的DEBUG許可權

SQL>REVOKE ALL ON PROC_TEST FROM TEMP;SQL>GRANT DEBUG ON PROC_TEST TO TEMP;

那麼TEMP用戶此時執行存儲過程報許可權不足

SQL> SET SERVEROUT ON;SQL> EXEC escmuser.proc_test;begin escmuser.proc_test; end;ORA-06550: line 2, column 16:PLS-00904: insufficient privilege to access object ESCMUSER.PROC_TESTORA-06550: line 2, column 7:PL/SQL: Statement ignored

此時,如果修改存儲過程PROC_TEST就會ORA-01031許可權不足問題。但是你可以在PL/SQL Developer工具或使用下面視圖查看存儲過程的定義。如下所示。

SELECT * FROM ALL_SOURCE WHERE NAME='PROC_TEST'

所以,只需要授予存儲過程的DEBUG許可權給某個用戶,就可以實現只授予用戶查看存儲過程定義的許可權,而限制用戶修改、執行存儲過程。從而達到只授權用戶查看存儲過程定義的許可權。不過這樣實現,總讓我感覺有點怪怪的。

C. 在SQL SERVER 2005中如何給某個用戶分配執行存儲過程的許可權

打開 management studio,選擇要操作的資料庫-->安全性-->用戶,選擇用戶,右擊,屬性-->安全類型->添加許可權-->特定類型的所有對象,選擇 存儲過程,點擊確認後,分配可以分配的 許可權,有 control\alter\exeute etc.。之前要創建好用戶,並給予登錄的許可權。

D. oracle存儲過程許可權有哪些

Oracle 存儲過程(Stored Procere)是一段預定義的程序,可以被存儲在資料庫中並在稿指需要時被調用執行。與其他程序一樣,存儲過程需要適當的許可權設置,以便只有授權用戶才能訪問和執行它。下面是 Oracle 存儲過程常用的許可權:

  • CREATE PROCEDURE 許可權:允許用戶創建存儲過程。

  • ALTER PROCEDURE 許可權:允許用戶修改已經存在的存儲過程。

  • EXECUTE 許可權:允許用納敬穗戶執行存儲過程。

  • DEBUG CONNECT SESSION 許可權:允許用戶調試存儲過程,包括在運行過程中進行斷點調試和監控變數等。

  • DEBUG ANY PROCEDURE 許可權:允許用戶調試資料庫中任何存儲過程。

  • DEBUG ANY PROGRAM 許可權:允許用戶調試資料庫中任何程序。

  • DROP PROCEDURE 許可權:允許用戶刪除已經存在的存儲過程。

  • 需要注意的是,對於存儲過程的許可權設置,應該根據實際情況進行授權,只授予必要的許可權以保證數據的安全性和完整性。例如,只有特定的用戶才能執行存儲過程,而其他用戶無法訪問存儲過程的代碼和洞卜結果。同時,還需要定期檢查資料庫中存儲過程的許可權設置,以確保其符合安全和合規要求。

E. SqlServer 資料庫的存儲過程許可權怎麼設置,只讓用戶查看存儲過程,不讓用戶修改添加刪除存儲過程怎麼做

用ORACLE就可以輕松實現這個安全管理,但是sql server 就不明了 可以嘗試查看SQL SERVER對於許可權的分類的文檔,sql server幫助裡面應該有,用沒有那種只能看不能修改和刪除的操作的許可權

熱點內容
伺服器分配ip錯誤的是 發布:2024-06-26 09:41:27 瀏覽:121
sql2005超時 發布:2024-06-26 09:41:05 瀏覽:615
java游戲俄羅斯方塊 發布:2024-06-26 09:28:43 瀏覽:403
linux保存修改文件 發布:2024-06-26 09:15:20 瀏覽:645
python查看內存 發布:2024-06-26 09:15:18 瀏覽:390
如何降低我的世界伺服器tps 發布:2024-06-26 09:01:26 瀏覽:261
啊哈演算法怎樣 發布:2024-06-26 08:40:52 瀏覽:352
sql字元日期函數 發布:2024-06-26 08:39:19 瀏覽:839
讀心演算法 發布:2024-06-26 08:38:39 瀏覽:462
壓縮zr 發布:2024-06-26 08:26:28 瀏覽:461