存储过程如何修改
方法如下:
修改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
不过建议你最好还是重建一个,因为重命名 视图或存储过程,要清空缓存,然后再重新编译一下。还不如 直接 再创建一个呢。