如何授予SQL角色权限以创建和管理临时表

时间:2011-01-18 20:29:33

标签: sql tsql azure-sql-database

我想授予SQL角色权限以创建临时表#foo并授予对该表执行任何操作的权限(SELECT,INSERT和DELETE)。如果未创建表#foo(属于此角色的用户将创建和管理它),该怎么可能?

由于

注意:如果可能,该解决方案应与SQL 2008和SQL Azure一起使用。

3 个答案:

答案 0 :(得分:2)

你不能:

当创建表的会话结束且所有其他任务已停止引用它们时,将自动删除全局临时表。任务和表之间的关联仅在单个Transact-SQL语句的生命周期内维护。这意味着在创建会话结束时,在最后一个主动引用该表的Transact-SQL语句完成时,将删除全局临时表。 link text

答案 1 :(得分:1)

我不确定Azure,但是......

如果在tempdb中显式创建表,它会在会话中保持不变,但会在服务器重新启动时清除。

create table tempdb..authors (au_id char(11))

如果你创建一个## TempTable,它是全局可见的,但它也以创建者的会话结束。

答案 2 :(得分:0)

显然,使用AUTHORIZATION dbo创建的用户在连接到数据库后,已经有权创建和管理临时表。只有当该用户需要访问数据库中的其他表时,才需要授予他明确的权限。