你的数据库对象允许任何用户访问吗?如果是那么你的数据库就会有安全缺陷你需要取消用户自定义数据库对象的公共读取权限
由于数据库的设计所有用户都被当作公共成员从公共数据库中取消用户自定义数据库对象公共读取权限的办法就是创建一个用户自定义数据库做法如下
把你的用户自定义数据库放入一个系统提供的数据库系统提供的数据库有db_ownerdb_accessadmindb_securityadmindb_ddladmindb_backupoperatordb_datareaderdb_datawriterdb_denydatareader和db_denydatawriter
把你的用户自定义数据库添加到将作为开发环境的db_datareader和db_datawriter中如果你已经有一个可以添加和/或删除用户自定义数据库对象的开发环境你就只需要取消这个权限或是把你的用户自定义数据库添加到db_ddladmin系统数据库中
把数据库用户作为数据库成员添加到你的用户自定义数据库中
取消所有的公共权限
不要向公共用户发出DENY命令如果你向公共用户发出了DENY命令用户将不能读取用户自定义数据库的对象用REVOKE命令代替DENY命令来取消读取公共数据库的权限这样设置后数据库的用户就是用户自定义数据库的成员了用户自定义数据库具有读取用户自定义数据库对象的权限因此这个用户自定义数据库允许数据库用户读取用户自定义数据库的对象
以下是实施上面的方法的具体步骤