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