首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重复丢失TEMPDB中用户的CREATE SYNONYM权限

重复丢失TEMPDB中用户的CREATE SYNONYM权限
EN

Stack Overflow用户
提问于 2012-06-14 01:14:18
回答 2查看 400关注 0票数 0

我遇到了一个反复出现的问题,即用户在TEMPDB中的CREATE SYNONYM权限正在丢失。为什么这些权限似乎不是永久持久的,有什么原因吗?

我得到的错误是:

代码语言:javascript
复制
> System.Data.SqlClient.SqlException (0x80131904): CREATE SYNONYM
> permission denied in database 'tempdb'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-14 02:23:22

我给你留下了评论,但你能做的如下

在master数据库中创建一个proc,在该proc中为tempdb提供权限(如果使用动态sql,则可以在proc中使用use tempdb )

然后将proc标记为在启动时运行

代码语言:javascript
复制
exec sp_procoption N'MyProcName', 'startup', 'on'

现在,每次重新启动sql server时,此过程都会运行并授予权限。

另请参阅此处List all stored procedures that run at startup in SQL Server

票数 1
EN

Stack Overflow用户

发布于 2012-06-14 01:42:51

每次重新启动服务器时,都会将tempdb创建为model数据库的副本。我的猜测是,当您向用户授予权限时和收到此错误消息时之间会发生服务器重启。也就是说,您可以在model中授予权限,它将在服务器重新启动时位于tempdb中,或者您可以执行诸如创建启动存储过程之类的操作来授予tempdb中的权限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11019971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档