0

SQL 服务器有一个选项可以使用语句 CREATE USER proxyUser WITHOUT LOGIN 创建代理用户帐户;

我在互联网上找不到与此等效的 db2 (v8) 的太多帮助。我不确定这是否可能,如果是,请告诉我如何。

我想使用它的场景如下。我有大约 800 万条记录的表格,每天都会更新。在插入发生之前,从表中删除的记录很少,数量约为 200 万。由于不需要记录这些删除,我们决定在删除期间设置 Logging。由于我们的凭据没有更改表权限,我们决定将 ALTER 和 DELETE 语句放在脚本中,并使用代理帐户执行脚本,而不管执行 SP 的用户是什么。

我找到了这篇文章,它详细描述了我上面描述的场景。不同之处在于我需要在 db2 上执行此操作,并且我需要在不记录它们的情况下进行删除。

http://www.mssqltips.com/sqlservertip/2583/grant-truncate-table-permissions-in-sql-server-without-alter-table/

谢谢阿琼

4

1 回答 1

0

它在 DB2 中的工作方式基本相同,但有一些例外。首先,DB2 8.2 中没有TRUNCATE TABLE声明(Linux 上也没有 DB2 版本 8)。其次,DB2 中没有数据库用户——所有用户都是在操作系统外部定义的,所以也没有CREATE USER声明。

存储过程中的所有语句,除了动态 SQL 之外,都是在过程创建者的授权下执行的。

因此,使用授权的 ID,例如数据库管理员的 ID,创建执行所需操作的存储过程(ALTER、DELETE 等),然后将该过程的 EXECUTE 权限授予需要运行它的任何人。

于 2013-07-16T16:27:01.097 回答