据我所知,SQL Server系统数据库总是具有相同的 ID,而且我在 Internet 上看到许多维护脚本依赖谓词WHERE database_id > 4
将它们从脚本的操作中排除。
另外,如果我SELECT name, schema_id FROM sys.schemas;
在新的用户数据库上运行,我会得到:
name schema_id
dbo 1
guest 2
INFORMATION_SCHEMA 3
sys 4
db_owner 16384
db_accessadmin 16385
db_securityadmin 16386
db_ddladmin 16387
db_backupoperator 16389
db_datareader 16390
db_datawriter 16391
db_denydatareader 16392
db_denydatawriter 16393
Run Code Online (Sandbox Code Playgroud)
我在两个不同的实例上运行了该查询,一个是 SQL Server 2016,另一个是 SQL Server 2005,并且都返回了相同的结果。
尝试运行以下查询以创建新数据库时:
CREATE DATABASE [Lunch]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'Lunch',
FILENAME = N'E:\Data Files\Lunch.mdf' ,
SIZE = 110592KB , FILEGROWTH = 1048576KB ),
FILEGROUP [DATA]
( NAME = N'Lunch_Data',
FILENAME = N'E:\Data Files\Lunch_Data.ndf' ,
SIZE = 110592KB , FILEGROWTH = 1048576KB ),
FILEGROUP [NONCLUSTERED_INDEXES]
( NAME = N'Lunch_nonclusteredindexes',
FILENAME = N'E:\Data Files\Lunch_nonclusteredindexes.ndf' ,
SIZE = 110592KB , FILEGROWTH = 1048576KB )
LOG ON
( NAME = N'Lunch_log',
FILENAME = N'F:\logFiles\Lunch_log.ldf' ,
SIZE = 524288KB ,
FILEGROWTH = …
Run Code Online (Sandbox Code Playgroud) 是否可以安全地更改仅包含系统数据库的卷的驱动器号?
应该采取哪些预防措施以及应该如何做?我知道我可以直接转到计算机管理 > 存储并更改驱动器号,但会对 SQL Server 操作产生负面影响吗?
我们有一个每 24 小时运行一次的第三方服务器备份工具,它备份所有内容(文件和数据库,为裸机恢复做准备)。经过大量调查,发现该工具使用了非copy_only
备份,从而破坏了系统数据库和我们自己的日志链。
(我一直在研究是否应该备份系统数据库,由于他们持有的关于 SQL Server 一般的数据(例如用户、代理作业等),共识通常是肯定的。这不是关于他们的内容,但如果由于我描述的情况而在恢复后丢失会发生什么)。
为了阻止这种犯罪,我禁用了执行数据库备份的工具,所以现在它只执行文件备份(MDF/LDF 文件除外)。然后我安排 SQL 代理每小时运行一次备份,然后将它们发送到我的私有云。
如果服务器完全故障,并且需要裸机备份,我希望在 SQL 开始备份时数据库不会在那里,因为它们没有被工具备份/恢复(尽管我安全地拥有它们备份)。
此时实际发生了什么?SQL Server 是否会重新创建系统数据库,然后我可以将其还原?或者,它是否只是拒绝启动而我会遇到麻烦?
有一个名为资源数据库的数据库,我知道它是只读的,包含有关系统对象的信息,并且不保存任何用户相关的数据或元数据。
我正在使用 SSMS 来管理我的数据库实例,但我只能看到四个系统数据库 - master、model、msdb、tempdb。我想知道在哪里可以找到使用 SSMS 的资源数据库?或者数据库故意对用户不可见?
我将 Visual Studio 2012 Professional 与 SQL Server Data Tools 与 SQL Server 2012 标准版数据库实例一起使用。
我无法在我的开发机器或托管 SQL Server 实例的服务器上找到 master.dacpac 文件。
我怎样才能获得这个文件,这样我就可以摆脱如下警告:
SQL71502: Procedure: <ProcedureName> has an unresolved reference to object [sys].[objects]
Run Code Online (Sandbox Code Playgroud) 移动模型数据库后,SQL Server 2008 R2 无法启动。有任何想法吗?错误:945,严重性:14,状态:2。有什么想法吗?Sql 2008 R2 不会以trace -f -T3608 或单用户模式-m 启动。需要参数来启动短信以将模型移回原处。
据我所知,资源数据库包含有关其服务器实例中所有对象的信息,因此我认为当您从备份文件恢复数据库时,该过程的一部分是在服务器资源中注册其对象是很自然的数据库,但我找不到有关该主题的任何具体信息,也无法在本地对其进行测试。