SQL Server 2005文件与文件组的关系 (sqlserver)

技术教程 2025-05-07 22:11:02 浏览
sqlserver

  

1、文件和文件组的含义与关系

每个数据库有一个主数据文件.和若干个从SQL Server 2005文件。文件是数据库的物理体现。 文件组可以包括分布在多个逻辑分区的文件,实现负载平衡。文件组允许对文件进行分组,以便于管理和数据的分配/放置。例如,可以分别在三个硬盘驱动器上创建三个文件(Data1.ndf、Data2.ndf 和>服务器好多都有磁盘阵列,你可以把磁盘阵列简单的假象成n个一块转动的磁盘,磁盘阵列的设计是希望通过多个磁盘的串联来得到更大的读写效率.但是如果你的数据库只有一个mdf文件(ldf文件暂时不考虑),那么你总是只能够利用这个磁盘阵列里面的一个磁盘而已.那样的话昂贵的磁盘阵列的效率就由并联变成串联了.试想如果我们能够让mdf分散成多个文件,比如说磁盘阵列上的每个磁盘中都分配一个文件,然后把mdf中的数据分散到各个SQL Server 2005文件中,我在读取的时候就是串联的读取了,这样就充分的利用了磁盘阵的存取效能.

这两个问题平常我们没有遇到过(条件不具备),但是做大型的服务开发的时候这几乎是致命的.

3、查询文件组和文件语句

这在2005下,运行

SELECT df.[name], df.physical_name, df.[size], df.growth, f.[name][filegroup], f.is_default FROM sys.database_files df JOIN sys.filegroups f ON df.data_space_id = f.data_space_id

4、MSDN官方解释

了解文件和文件组

每个 SQL Server 数据库至少具有两个操作系统文件:一个数据文件和一个日志文件。数据文件包含数据和对象,例如表、索引、存储过程和视图。日志文件包含恢复数据库中的所有事务所需的信息。为了便于分配和管理,可以将数据SQL Server 2005文件集合起来,放到文件组中。

数据库文件

SQL Server 数据库具有三种类型的文件,如下表所示:

文件 说明

主要 主要数据文件包含数据库的启动信息,并指向数据库中的其他文件。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库有一个主要数据文件。主要数据文件的建议文件扩展名是 .mdf。

次要 次要数据文件是可选的,由用户定义并存储用户数据。通过将每个文件放在不同的磁盘驱动器上,次要文件可用于将数据分散到多个磁盘上。另外,如果数据库超过了单个 Windows 文件的最大大小,可以使用次要数据文件,这样数据库就能继续增长。

次要数据文件的建议文件扩展名是 .ndf。

Server

事务日志

事务日志文件保存用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件。事务日志的建议文件扩展名是 .ldf。

例如,可以创建一个简单的数据库 Sales,其中包括一个包含所有数据和对象的主要文件和一个包含事务日志信息的日志文件。也可以创建一个更复杂的数据库 Orders,其中包括一个主要文件和五个次要文件。数据库中的数据和对象分散在所有六个文件中,而四个日志文件包含事务日志信息。

默认情况下,数据和事务日志被放在同一个驱动器上的同一个路径下。这是为处理单磁盘系统而采用的方法。但是,在生产环境中,这可能不是最佳的方法。建议将数据和日志文件放在不同的磁盘上。

文件组

每个数据库有一个主要文件组。此文件组包含主要数据SQL Server 2005文件和未放入其他文件组的所有次要文件。可以创建用户定义的文件组,用于将数据文件集合起来,以便于管理、数据分配和放置。

例如,可以分别在三个磁盘驱动器上创建三个文件>


如何将.mdf .ldf导入到sql

SQL

企业管理器-----数据库上点右键-----选附加数据库----选mdf(找到所在的位置)注意版本有的用sql2000附加才能打开,有的用sql2005附加才能打开

什么是域(M)?

打开宽带连接登陆界面-属性-选项-包含windows登录域的勾去掉,就去掉这个域了,域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。 信任关系是连接在域与域之间的桥梁。 当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。 域既是 Windows 网络操作系统的逻辑组织单元,也是Internet的逻辑组织单元,在 Windows 网络操作系统中,域是安全边界。 域管理员只能管理域的内部,除非其他的域显式地赋予他管理权限,他才能够访问或者管理其他的域;每个域都有自己的安全策略,以及它与其他域的安全信任关系。 域:域是一种管理边界,用于一组计算机共享共用的安全数据库,域实际上就是一组服务器和工作站的集合。 域在文件系统中,有时也称做“字段”,是指数据中不可再分的基本单元。 一个域包含一个值。 如学生的名字等。 可以通过数据类型(如二进制、字符、字符串等)和长度(占用的字节数)两个属性对其进行描述。 域,在WORD文档中是一种可以发生变化的数据。 他在页面视图中,与一般的文本看不出有什么区别,但是,当光标移入域中,就会发现,整体域的底纹颜色变成灰色(约灰色-30%)。 ,

对已登录用户帐户进一步授权访问所设计的数据库中的某些表的SQL语句怎么写?急~~

用grant语句如果是sql server的话 你可以在联机丛书中查询grant 里面有很详细的解答下例显示权限的优先顺序。 首先,给 public 角色授予 SELECT 权限。 然后,将特定的权限授予用户 Mary、John 和 Tom。 于是这些用户就有了对 authors 表的所有权限。 USE pubsGOGRANT SELECTON authorsTO publicGO GRANT INSERT, UPDATE, DELETEON authorsTO Mary, John, TomGOGRANT在安全系统中创建项目,使当前数据库中的用户得以处理当前数据库中的数据或执行特定的 Transact-SQL 语句。 语法语句权限:GRANT { ALL | statement [ ,...n ] } TO security_account [ ,...n ]对象权限:GRANT{ ALL [ PRIVILEGES ] | permission [ ,...n ] }{ [ ( column [ ,...n ] ) ] ON { table | view }| ON { table | view } [ ( column [ ,...n ] ) ]| ON { stored_procedure | extended_procedure }| ON { user_defined_function }} TO security_account [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role } ]参数ALL表示授予所有可用的权限。 对于语句权限,只有 sysadmin 角色成员可以使用 ALL。 对于对象权限,sysadmin 和 db_owner 角色成员和数据库对象所有者都可以使用 ALL。 statement是被授予权限的语句。 语句列表可以包括: CREATE DATABASECREATE DEFAULTCREATE FUNCTIONCREATE PROCEDURECREATE RULECREATE TABLECREATE VIEWBACKUP DATABASEBACKUP LOG n一个占位符,表示此项可在逗号分隔的列表中重复。 TO指定安全帐户列表。 security_account是权限将应用的安全帐户。 安全帐户可以是: Microsoft® SQL Server™ 用户。 SQL Server 角色。 Microsoft Windows NT® 用户。 Windows NT 组。 当权限被授予一个 SQL Server 用户或 Windows NT 用户帐户,指定的 security_account 是权限能影响到的唯一帐户。 若权限被授予 SQL Server 角色或 Windows NT 组,权限可影响到当前数据库中该组或该角色成员的所有用户。 若组或角色和它们的成员之间存在权限冲突,最严格的权限 (DENY) 优先起作用。 security_account 必须在当前数据库中存在;不可将权限授予其它数据库中的用户、角色或组,除非已为该用户在当前数据库中创建或给予了访问权限。 两个特殊的安全帐户可用于 GRANT 语句。 授予 public 角色的权限可应用于数据库中的所有用户。 授予 guest 用户的权限可为所有在数据库中没有用户帐户的用户使用。 当授予某个 Windows NT 本地组或全局组权限时,请指定在其上定义该组的域名或计算机名,然后依次输入反斜线和组名。 但是,若要授予访问 Windows NT 内置本地组的权限,请指定 BUILTIN 而不是域名或计算机名。 PRIVILEGES是可以包含在符合 SQL-92 标准的语句中的可选关键字。 permission是当前授予的对象权限。 当在表、表值函数或视图上授予对象权限时,权限列表可以包括这些权限中的一个或多个:SELECT、INSERT、DELETE、REFENENCES 或 UPDATE。 列列表可以与 SELECT 和 UPDATE 权限一起提供。 如果列列表未与 SELECT 和 UPDATE 权限一起提供,那么该权限应用于表、视图或表值函数中的所有列。 在存储过程上授予的对象权限只可以包括 EXECUTE。 在标量值函数上授予的对象权限可以包括 EXECUTE 和 REFERENCES。 为在 SELECT 语句中访问某个列,该列上需要有 SELECT 权限。 为使用 UPDATE 语句更新某个列,该列上需要有 UPDATE 权限。 为创建引用某个表的 FOREIGN KEY 约束,该表上需要有 REFERENCES 权限。 为使用引用某个对象的 WITH SCHEMABINDING 子句创建 FUNCTION 或 VIEW,该对象上需要有 REFERENCES 权限。 column是当前数据库中授予权限的列名。 table是当前数据库中授予权限的表名。 view是当前数据库中被授予权限的视图名。 stored_procedure是当前数据库中授予权限的存储过程名。 extended_procedure是当前数据库中授予权限的扩展存储过程名。 user_defined_function是当前数据库中授予权限的用户定义函数名。 WITH GRANT OPTION表示给予了 security_account 将指定的对象权限授予其它安全帐户的能力。 WITH GRANT OPTION 子句仅对对象权限有效。 AS {group | role}指当前数据库中有执行 GRANT 语句权力的安全帐户的可选名。 当对象上的权限被授予一个组或角色时使用 AS,对象权限需要进一步授予不是组或角色的成员的用户。 因为只有用户(而不是组或角色)可执行 GRANT 语句,组或角色的特定成员授予组或角色权力之下的对象的权限。 详细的可以参见sql server的连接丛书!

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐