存儲過程如何修改
方法如下:
修改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;
好文要頂關注我
㈡ 如何查看和修改加密的存儲過程
在PL/SQL developer中先執行包頭、然後再wrap加密包體 SQL> create or replace package pkg_wrap_test is 2 --測試過程,配芹將輸入的數字以字粗搜符格岩賣歷式輸出 3 procere test1(i in number); 4 END pkg_wrap_test; 5 /
㈢ 如何修改存儲過程 (SQL Server Management Studio)
重要提示:修改存儲過程
在對象資源管理器中,連接到某個資料庫引擎實例,再展開該實例。
依次展開「資料庫」、存儲過程所屬的資料庫以及「可編程性」。
展開「存儲過程」,右鍵單擊要修改的過程,再單擊「修改」。
修改存儲過程的文本。
若要測試語法,請在「查詢」菜單上,單擊「分析」。
若要修改存儲過程,請在「查詢」菜單上,單擊「執行」。
若要保存腳本,請在「文件」菜單上單擊「另存為」。接受文件名或使用新名稱替換它,再單擊「保存」。
安全說明:在對象資源管理器中,連接到某個資料庫引擎實例,再展開該實例。
依次展開「資料庫」、存儲過程所屬的資料庫以及「可編程性」。
展開「存儲過程」,右鍵單擊要修改的過程,再單擊「修改」。
修改存儲過程的文本。
若要測試語法,請在「查詢」菜單上,單擊「分析」。
若要修改存儲過程,請在「查詢」菜單上,單擊「執行」。
若要保存腳本,請在「文件」菜單上單擊「另存為」。接受文件名或使用新名稱替換它,再單擊「保存」。
㈣ sqlserver 如何修改存儲過程的名字
rename [存儲過程名字] ,newname
不過建議你最好還是重建一個,因為重命名 視圖或存儲過程,要清空緩存,然後再重新編譯一下。還不如 直接 再創建一個呢。