SSMS Intellisense 依赖哪些权限?

SSMS Intellisense 依赖哪些权限?

我们有一台运行 SQL Server 2008 的服务器。当我们使用 SSMS 和一些登录名(来自 SSMS 2008)连接到它时,Intellisense 可用。对于其他登录名则不可用。有问题的登录名连接到同一个数据库,除了用于连接的登录名之外,SSMS 会话之间没有其他变化。

如果我以 db_owner 成员的登录名进行连接,Intellisense 就会起作用。如果我以不属于 db_owner 但具有“查看定义”权限的登录名进行连接,Intellisense 就会起作用。如果我以既不属于 db_owner 也不具有“查看定义”权限的登录名进行连接,Intellisense 就不会起作用。

因此,我尝试授予第三个登录名对该数据库的“查看定义”权限,以为他们会获得 Intellisense。没有运气。第三个登录名可以访问其他两个数据库。在这三个数据库中,此登录名是 db_datareader 角色的成员,但没有其他角色(也没有“查看定义”权限)。在这两个其他数据库中,此登录名获得了 Intellisense。在主数据库中,没有。

在我看来,每个数据库和每个登录都有一些允许 Intellisense 的设置/权限,但到目前为止我还无法追踪它。

有任何想法吗?

答案1

它既是权限,也是“查看定义”。您无法查看您没有权限的内容的定义,因为元数据可见性。那么,对于权限...

db_owner 也是一个包装器对于 CONTROL 权限,类似于 ddl_admin 和其他权限。此外

查看实际的您需要查询的权利sys.database_permissions。 例如,授予更改架构与固定数据库角色分离(当然,ALTER ANY SCHEMA 是 ddl_admin)。

它比以前更复杂了:-)

仅供参考:您确实获得了一些有用的东西,例如 GRANT ALTER TRACE,它允许分析器在没有系统管理员的情况下控制服务器

相关内容