我在新数据库(Microsoft SQL Server 2005)上创建了几个新表。现在,这些表已准备好供客户端用户使用System DSN ODBC对象(使用SQL身份验证)通过Access 2003进行查看。我所做的是在数据库中创建一个角色和一个模式,我的SQL服务器的登录用户默认使用我的数据库和模式名称。
问题是客户端不仅可以查看我创建的表,还可以查看数据库中的系统视图对象。我不知道如何设置SQL登录用户,架构和角色以便只显示我的表格?不确定默认情况下登录用户可以看到系统视图对象的原因。
另一种清除我现在拥有的权限的替代方法。我确实检查了一些系统视图对象(很长的列表)。他们都拥有我使用公共模式创建的模式的权限。有没有办法使用T-SQL脚本查看然后删除与我的架构相关的那些系统视图对象的权限?之后,我需要使用类似的脚本将我的架构的权限添加到我创建的表中。
答案 0 :(得分:1)
嗯,默认情况下,新用户也将成为“公共”服务器和数据库角色的成员。 sys中的对象。和INFORMATION_SCHEMA模式对公共角色的成员可见。
您可以明确拒绝自己对这些架构的角色访问权限,也可以从登录用户中删除公共角色。
马克