GRANT表权限有限的时间

时间:2015-06-26 14:08:55

标签: sql oracle plsql permissions grant

我有一个以特定用户身份运行的 plsql 作业,我需要执行一个授权,让该用户可以访问特定的表,直到作业完成。这项工作从不需要超过30分钟。

我的问题是,在 oracle 中无论如何都要授予特定用户对表有限时间的访问权限,或者我应该在作业完成后创建另一个撤消权限的函数?我做了一些快速搜索,却无法找到任何相关信息。有谁知道这是否可行?

如果我可以在30分钟内完成全部授权,那将是非常棒的。

2 个答案:

答案 0 :(得分:2)

@ksa的评论是对此的正确答案。您应该创建一个具有所需权限的新用户,并在该架构上定义此过程。然后,您可以GRANT EXECUTE对此角色或需要运行它的用户进行AUTHID DEFINER。虽然它是默认值,但您也可以明确指定git pull origin <the open pull request branch name> 。实质上,这意味着无论谁调用它,程序都会作为定义者运行。它可以避免任何时间/日程安排问题,并且您的后继者可以清楚地了解权限。如果您不想在每次通话时指定架构,则可以定义同义词。

答案 1 :(得分:-2)

plsql中有一个名为grantAccess()的方法。它允许您提供授予用户访问权限的秒数。

所以,如果你想给他们一年的访问权限,你会写下以下内容:

rightSideUser.grantAccess(31536000)