SQL Server可以选择使用该语句创建代理用户帐户 CREATE USER proxyUser WITHOUT LOGIN;
我在互联网上找不到与db2(v8)相当的帮助。我不确定这是否可行,如果是,请让我知道如何。
我想使用它的场景如下。 我有大约800万条记录的表,每天都有更新。在插入发生之前,从表中删除的记录很少,数量约为200万。由于无需记录这些删除,我们决定在删除期间设置记录。由于我们的凭据没有alter table权限,因此我们决定将ALTER和DELETE语句放在脚本中,并使用代理帐户执行脚本,而不管用户执行SP。
我发表这篇文章,它描述了我上面描述的场景。不同之处在于我需要在db2上执行此操作,并且我需要在不记录它们的情况下进行删除。
由于 阿琼
答案 0 :(得分:0)
它在DB2中基本上以相同的方式工作,但有一些例外。首先,DB2 8.2中没有TRUNCATE TABLE
语句(Linux上没有DB2版本8)。其次,DB2中没有数据库用户 - 所有用户都是在操作系统外部定义的,因此也没有CREATE USER
语句。
存储过程中的所有语句(动态SQL除外)都是在过程创建者的授权下执行的。
因此,使用授权ID,例如数据库管理员的ID,创建执行所需操作的存储过程(ALTER,DELETE,等等),然后将该过程的EXECUTE特权授予需要运行它的任何人。