我是 ASE Sybase 15.7 的新手,但在其他 RDBMS 系统中确实有一些背景。因此,我假设 ASE Sybase 15.7 中的存储过程将有一个等效的 CREATE OR REPLACE。
但我似乎没有看到任何方法可以做到这一点。我问过的大多数人建议删除并使用较新版本的存储过程进行创建,但这给我管理存储过程的权限带来了挑战,这些权限在不同环境中有所不同,具体取决于每个环境中的用户。
所以我的问题如下:
假设我有一个这样的存储过程:
ENV1
CREATE Procedure test (
as
begin
SELECT getdate()
end
grant execute on test to group1
go
grant execute on test to group2
go
ENV2 有:
CREATE Procedure test (
as
begin
SELECT getdate()
end
grant execute on test to group1
go
grant execute on test to group2
go
grant execute on test to group3
go
我想更新这个存储的过程给我2个日期而不是1个所以新的过程应该是
ENV1:
CREATE Procedure test (
as
begin
SELECT getdate(), getdate()
end
grant execute on test to group1
go
grant execute on test to group2
go
ENV2:
CREATE Procedure test (
as
begin
SELECT getdate(), getdate()
end
grant execute on test to group1
go
grant execute on test to group2
go
grant execute on test to group3
go
上面当然是一个非常简单的例子。有没有办法部署更改以仅修改保留权限的存储过程主体?
CREATE 或 REPLACE 和 ALTER PROCEDURE 似乎不起作用,删除和创建存储过程将意味着每个环境都需要额外的逻辑来确定要授予的权限。
考虑到我们有 20 多个不同的用户环境,有没有办法以最佳方式进行这种部署?
谢谢!