sp_certify_removable (Transact-SQL)
验证是否正确配置数据库以便在可移动媒体上分发,并向用户报告所有问题。
重要提示 |
---|
后续版本的 Microsoft SQL Server 将删除该功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。。建议您改用 CREATE DATABASE。 |
语法
sp_certify_removable [ @dbname= ] 'dbname'
[ , [ @autofix = ] 'auto' ]
参数
[ @dbname = ] 'dbname'
指定要验证的数据库。dbname 的数据类型为 sysname。[ @autofix=] 'auto'
对系统管理员授予数据库及所有数据库对象的所有权,并除去任何用户创建的数据库用户及非默认的权限。auto 的数据类型为 nvarchar(4),默认值为 NULL。
返回代码值
0(成功)或 1(失败)
注释
如果正确配置了数据库,则 sp_certify_removable 将执行下列操作:
将数据库设置为脱机,以便复制文件。
更新所有表的统计信息,并报告任何所有权问题或用户问题。
将数据文件组标记为只读,以便将这些文件复制到只读媒体中。
系统管理员必须是数据库和所有数据库对象的所有者。系统管理员是存在于所有正在运行 MicrosoftSQL Server 的服务器上已知用户,而且在稍后分发和安装数据库时仍然存在。
如果运行没有 auto 值的 sp_certify_removable,它将返回有关下列任一情况的信息:
系统管理员不是数据库所有者。
存在用户创建的任何用户。
系统管理员并非拥有数据库中的所有对象。
已授予非默认权限。
可以使用下列方法更正这些情况:
使用 SQL Server 工具和过程,然后再次运行 sp_certify_removable。
只需运行具有 auto 值的 sp_certify_removable。
注意,该存储过程只检查用户和用户权限。可以向数据库添加组并且对这些组授予权限。有关详细信息,请参阅GRANT (Transact-SQL)。
权限
执行权限只授予 sysadmin 固定服务器角色的成员。
示例
下面的示例验证 inventory 数据库已准备好删除。
EXEC sp_certify_removable inventory, AUTO