好的,我正在尝试在另一个SQLServer2005实例上创建一个“空”版本的数据库。为此,我使用脚本向导创建一个大脚本,创建所有表、视图、SP等,添加一些用户,并为他们授予权限。现在,在脚本的权限部分,我有(除其他外)
use [master]
GO
GRANT CREATE VIEW to [myUser]
GO
...
use [prodDb]
GO
GRANT REFERENCES on [tblMyTable] to [myUser]
GO
...
请记住,这是向导生成的脚本。我想弄明白的是,“使用master…授权创建视图”是否允许myUser在prodDb中创建视图?这就是我的理解——我说的是“myUser可以在这个实例上的任何数据库中创建视图”——但我认为当我尝试允许myUser在prodDb中创建视图时,会出现权限错误。当我在SQL Server Manager中查看prodDb的权限时,权限是正确的,但是我正在执行生成脚本的目标系统没有SQL Server Manager,并且我不确定如何从命令行检查给定对象上的每个用户权限(显然,当我尝试行使这些权限时出现的错误是一个很大的提示)。
这是脚本向导中的错误吗?我是否应该取消主机级别的权限,只在每DB级别授予权限?如果有什么不同的话,这是针对一个独立系统上的本地应用程序的,它永远不会联网。