sql server 2005 中怎么创建组和数据库的映射关系

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 2005 中怎么创建组和数据库的映射关系相关的知识,希望对你有一定的参考价值。

sql server 2005 中怎么创建组和数据库的映射关系


1、不同之:组织方式.文件系统的文件通常是由操作系统规定的,但是功能方面比较简单,方便查找定位之用,文件与文件之间不能调用数据;而数据库中的文件是由数据库软件组织的,其程度很高,能方便查找,更重要是它们之间联系紧密!能相互传递据.

2、(1)物理数据层。它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。

(2)概念数据层。它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。

(3)逻辑数据层。它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。

3、程序和数据的独立性是数据库的主要特征之一.作为工程数据库管理系统,也必须保持这个特征.为此,介绍了具体的工程数据库管理系统EDRMS程序与数据的独立性实现,并用实例予以说明.


1、a关系:关系是一个二维表,表的每行对应一个元组,表的列对应属性。
b属性:指关系中的列;
域:值的集,每个属性的取值的范围;
元组(Tuple):给出一组域产生笛卡儿乘积D1,D2…Dn,产生笛卡儿乘积D1*D2*….Dn=其中(d1,d2..dn)为元组。
c
关系的表:是一个简单的表,不准许出现组合的属性。
d用二维表的形式来表示实体集属性间的关系,以及实体之间联系的形式。


1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。

自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。


1、在SQL Server 2000 中,数据库由存储特定结构化数据集的表集合组成。表中包含行(有时称作记录或元组)和列(有时称作特性)的集合。表中的每一列都设计为存储某种类型的信息(例如,日期、名称、美元金额或数字)。表上有几种控制(约束、规则、触发器、默认值和自定义用户数据类型)用于确保数据的有效性。表上可以有索引,利用索引可以快速地找到行。可将声明引用完整性 (DRI) 约束添加到表上,以确保不同表中相互关联的数据保持一致。数据库还可以存储过程,这些过程使用 Transact-SQL 编程代码对数据库中的数据进行操作,如存储对表数据提供自定义访问的视图。

2、SQL Server 2000 使用一组文件映射数据库。数据库中的所有数据和对象(如表、存储过程、触发器和视图)都存储在文件组中。

3、主要数据文件,次要数据文件,事务日志文件

4、因为利用事务日志备份可以将数据库恢复到特定的即时点(如输入不想要的数据之前的那一点)或故障发生点。在媒体恢复策略中应考虑利用事务日志备份。


1、表是包含数据库中所有数据的数据库对象。表定义为列的集合。
2、每行代表惟一的一条记录,而每列代表记录中的一个域。
3、一对多关系,多对多关系,一对一关系


1、Transact-Sql语言的分类如下:
数据类型
变量说明
用来说明变量的命令
流程控制语句
2、null表示空值;与其他的比较既非空于空值的区别;null在表中即为空挡数据。

5、通常与LIKE关键字一起来使用
可以用在检查约束中使用LIKE
在后面的查询语句中还会经常使用到

6、ORDER BY是一个可选的子句,它允许你根据指定要order by的列来以上升或者下降的顺序来显示查询的

9、.SQL;文本文档


数据库中的索引与书籍中的目录类似。在一本书中,利用目录可以快速查找所需信息,无须阅读整本书。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。数据库中的索引是一个表中所包含的值的列表,其中注明了表中包含各个值的行所在的存储位置。可以为表中的单个列建立索引,也可以为一组列建立索引;索引采用B树结构。索引包含一个条目,该条目有来自表中每一行的一个或多个列(搜索关键字)。B树按搜索关键字排序,可以在搜索关键字的任何子词条集合上进行高效搜索。例如,对于一个A、B、C列上的索引,可以在A,A、B,A、B、C上对其进行高效搜索。

在随SQL Server 2000 提供的pubs示例数据库中,employee表在emp_id列上有一个索引。当SQL Server执行一个语句,在employee 中根据指定的emp_id值查找数据时,它能够识别emp_id列的索引,并使用该索引查找所需数据。如果该索引不存在,它会从表的第一行开始,逐行搜索指定的emp_id值。

SQL Server 2000为某些类型的约束(如PRIMARY KEY和UNIQUE约束)自动创建索引。可以通过创建不依赖于约束的索引,进一步对表定义进行自定义。

不过,索引为性能所带来的好处却是有代价的。带索引的表在数据库中会占据更多的空间。另外,为了维护索引,对数据进行插入、更新、删除操作所花费的时间会更长。在设计和创建索引时,应确保对性能的提高程度大于在存储空间和处理资源方面的代价。

在考虑是否为一个列创建索引时,应考虑被索引的列是否以及如何用于查询中。索引对下列查询很有帮助:

l 搜索符合特定搜索关键字值的行(精确匹配查询)。精确匹配比较是指查询使用 WHERE 语句指定具有给定值的列条目。例如WHERE emp_id = 'VPA30890F'。

l 搜索其搜索关键字值为范围值的行(范围查询)。范围查询是指查询指定其值介于两个值之间的任何条目。例如WHERE job_lvl BETWEEN 9 and 12。

l 在表 T1 中搜索根据联接谓词与表 T2 中的某个行匹配的行(索引嵌套循环联接)。

l 在不进行显式排序操作的情况下产生经排序的查询输出,尤其是经过排序的动态游标。

l 在不进行显式排序操作的情况下,按一种有序的顺序对行进行扫描,以允许基于顺序的操作,如合并联接和流聚合。

l 以优于表扫描的性能对表中所有的行进行扫描,性能提高是由于减少了要扫描的列集和数据总量(该查询有覆盖索引可供使用)。

l 搜索插入和更新操作中重复的新搜索关键字值,以实施PRIMARY KEY和 UNIQUE 约束。

l 搜索已定义了FOREIGN KEY约束的两个表之间匹配的行。

在很多查询中,索引可以带来多方面的好处。例如,索引除了可以覆盖查询外,还使得可以进行范围查询。SQL Server 2000可以在同一个查询中为一个表使用多个索引,并可以合并多个索引,以便搜索关键字共同覆盖一个查询。另外,SQL Server会自动确定利用哪些索引进行查询,并且能够在表被改动时确保该表的所有索引都得到维护。

一个表如果建有大量索引会影响 INSERT、UPDATE 和 DELETE 语句的性能,因为在表中的数据更改时,所有索引都须进行适当的调整。另一方面,对于不需要修改数据的查询(SELECT 语句),大量索引有助于提高性能,因为SQL Server 2000有更多的索引可供选择,以便确定以最快速度访问数据的最佳方法。对小型表进行索引可能不会产生优化效果,因为 SQL Server 2000在遍历索引以搜索数据时,花费的时间可能会比简单的表扫描还长。


视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其他数据库的一个或多个表,或者其他视图。分布式查询也可用于定义使用多个异类源数据的视图。如果有几台不同的服务器分别存储组织中不同地区的数据,而用户需要将这些服务器上相似结构的数据组合起来,这种方式就很有用。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。

视图通常用来集中、简化和自定义每个用户对数据库的不同认识。视图可用作安全机制,方法是允许用户通过视图访问数据,而不授予用户直接访问视图基础表的权限。从SQL Server 2000 复制数据时也可使用视图来提高性能并分区数据。

视图可以简化用户操作数据的方式。可将经常使用的联接、投影、联合查询和选择查询定义为视图,这样,用户每次对特定的数据执行进一步操作时,不必指定所有条件和限定。例如,一个用于报表目的,并执行子查询、外联接及聚合以从一组表中检索数据的复合查询,就可以创建为一个视图。视图简化了对数据的访问,因为每次生成报表时无需写或提交基础查询,而是查询视图。

视图允许用户以不同的方式查看数据,即使他们同时使用相同的数据时也如此。这在具有不同目的和技术水平的用户共享同一个数据库时尤为有利。例如,可定义一个视图以仅检索由客户经理处理的客户数据。视图可以根据使用该视图的客户经理的登录 ID 决定检索哪些数据。

可使用视图将数据导出至其他应用程序。例如,可能希望使用pubs数据库中的stores和sales表在Excel中分析销售数据。为此,可创建一个基于stores和sales表的视图。然后使用数据导入导出工具导出由视图定义的数据。

Transact-SQL UNION 集合运算符可在视图内使用,以将来自不同表的两个或多个查询结果组合成单一的结果集。这在用户看来是一个单独的表,称为分区视图。例如,如果一个表含有华盛顿的销售数据,另一个表含有加利福尼亚的销售数据,即可从 UNION 创建这两个表的视图。该视图代表了这两个区域的销售数据。使用分区视图时,首先创建几个相同的表,指定一个约束以决定可在各个表中添加的数据范围。视图即使用这些基表创建。当查询该视图时,SQL Server 自动决定查询所影响的表,并仅引用这些表。例如,如果一个查询指定只需要华盛顿特区的销售数据,则 SQL Server 只读取含有华盛顿特区销售数据的表,而并不访问其余的表。分区试图可基于来自多个异类源(如远程服务器)的数据,而不仅仅局限于同一数据库中的表。例如,要将分别存储组织中不同区域数据的几台远程服务器上的数据组合起来,可以创建分布式查询,从每个数据源中检索数据,然后基于这些分布式查询创建视图。所有查询都只从包含查询所请求数据的远程服务器上读取表中的数据,其他在视图中由分布式查询引用的服务器均不被访问。


在使用SQL Server 2000 创建应用程序时,Transact-SQL编程语言是应用程序和SQL Server数据库之间的主要编程接口。使用Transact-SQL程序时,可用两种方法存储和执行程序。可以在本地存储程序,并创建向SQL Server发送命令并处理结果的应用程序;也可以将程序在SQL Server中存储为存储过程,同时创建执行存储过程并处理结果的应用程序。

SQL Server 2000中的存储过程与其他编程语言中的过程类似,利用存储过程可以完成以下任务。

l 接受输入参数并以输出参数的形式将多个值返回至调用过程或批处理。

l 包含执行数据库操作(包括调用其他过程)的编程语句。

l 向调用过程或批处理返回状态值,以表明成功或失败(以及失败原因)。

l 可使用 Transact-SQL EXECUTE 语句运行存储过程。存储过程与函数不同,因为存储过程不返回取代其名称的值,也不能直接用在表达式中。

使用SQL Server 2000中的存储过程代替存储在客户计算机本地的Transact-SQL程序有很多的好处。

l 允许模块化程序设计。只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。

l 允许更快执行。如果某操作需要大量Transact-SQL代码或需重复执行,存储过程将比Transact-SQL批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行Transact-SQL语句时,都要从客户端重复发送,并且在SQL Server 2000每次执行这些语句时,都要对其进行编译和优化。

l 减少网络流量。一个需要数百行Transact-SQL代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。

l 可作为安全机制使用。即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。

十一
SQL Server 2000 提供了两种主要机制来强制业务规则和数据完整性:约束和触发器。触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动生效。唤醒调用触发器以响应INSERT、UPDATE或DELETE语句。触发器可以查询其他表,并可以包含复杂的Transact-SQL语句。触发器和触发它的语句要作为可在触发器内回滚的单个事务对待。如果检测到严重错误(例如磁盘空间不足),则整个事务即自动回滚。

触发器可通过数据库中的相关表实现级联更改。触发器可以强制CHECK约束定义的约束更为复杂的约束。与CHECK约束不同,触发器可以引用其他表中的列。例如,触发器可以使用另一个表中的SELECT比较插入或更新的数据,以及执行其他操作,如修改数据或显示用户定义错误信息。触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。一个表中的多个同类触发器(INSERT、UPDATE或DELETE)允许采取多个不同的对策以响应同一个修改语句。

约束和触发器在特殊情况下各有优势。触发器的主要好处在于它们可以包含使用Transact-SQL代码的复杂处理逻辑。因此,触发器可以支持约束的所有功能;但它在所给出的功能上并不总是最好的方法。

实体完整性总应在最低级别上通过索引进行强制,这些索引或是PRIMARY KEY和UNIQUE约束的一部分,或是在约束之外独立创建的。假设功能可以满足应用程序的功能需求,域完整性应通过CHECK约束进行强制,而引用完整性则应通过FOREIGN KEY约束进行强制。

十二
先创建登录名,可以是windows登录名也可以sql登录名
windows登录名是windows操作系统已经存在的用户名
sql登录名要在sql中创建而得的
要创建windows登录名:
例如:已经在windows中存在一个pkxz用户,域名是xxiang
create login [xxiang\pkxz] from windows with default_database = css
alter login pkxz with name=ppp
drop login pkxz

注意:只有administrators组的用户可以访问所有实例,并可获所有访问权,
其余本地用户组里的组,只能相对应的访问实例。
例如:chenshanshan是users用户组里的,是[xxinag2006\pkxz]实例的域用户帐户,
chenshanshan只能访问这个实例,并可获所有访问权。
例如:joan是users用户组里的,是[xxinag2006\pkxz]实例的登录名,joan只能访问这个实例。
要创建sql登录名:
sql用户名是pkxz
create login pkxz with password ='xx121314' , default_database = css
alter login pkxz with password = 'pp'
drop login pkxz

注意:sql用户名只能相对应的访问实例
例如:pc是[xxiang\pkxz]的登录名,只能访问这个实例,不可访问别的实例。

两者都创建了登录名,且都是css为默认数据库

然后创建完后把登录名授予角色

sp_addsrvrolemember 'pkxz','sysadmin'
sp_dropsrvrolemember 'pkxz','sysadmin'

服务器角色只能访问相对应的实例操作!不能访问别的实例!

创建用户
Ceate user pkxz_user from login pkxz with default_schema = pkxz_schema
如果没有创建架构的话,默认是dbo架构,这里是pkxz_schema

创建架构
创建架构的同时还可以创建该架构所拥有的表,视图,羡慕且可以对这些对象设轩权限。
create schema pkxz_schema authorization pkxz_user
Create Table pp (pp int)
Grant Select To pkxz_user_1

数据库角色
可以自己添加,还有内置固定数据库角色
自己添加角色
create role CreateTable authorization pkxz_user // CreateTable是角色名
分配权限
Grant Insert To CreateTable
添加成员
sp_addrolemember 'CreateTable','pkxz_user_1'

public角色的两个特点,1、初始状态没有权限 2、所有的数据库的成员都是他的成员
当修改了public角色,其实更改了所有数据库成员的权限

权限的管理

Grant 授予 Revoke 收回权限 Deny 否认权限
例如:将一个表pt的插入权限授予pkxz_user_1
Grant Insert On pt To pkxz_user_1
参考技术A 安装过程和xp没过大区别。。。

配置服务器你的说清楚,域服务器还是web服务还是文件服务器。。

百度搜索下有很多介绍,如果你太懒的话就留个信箱我把资料发给你。不然,太长,回答费劲。

WIN 2K服务器的正确安装与安全配置

作者:SharpWinnner 来自:红客大联盟()

目前,WIN 2K的服务器占据着国内服务器的大部分市场份额,但是据我们对国内WIN 2K服务器的安全性检测情况来看,WIN 2K服务器的用户以及管理员们并没有很好的掌握WIN 2K的安全配置与防范技术。现我们就尽一份对国内网络安全事业的责任,特为国内WIN 2K管理员们献上本篇文章。

一、WIN 2K操作系统的选择与正确安装

1、对硬盘进行分区

(1).通常情况下,大家安装WIN 2K操作系统的时候,习惯于把系统文件、日志文件和应用程序放置在一个分区内,而hacker的攻击通常就是利用应用程序所存在的漏洞进入系统,然后通过系统文件内的相关程序提升权限,从而来删除日志文件(防止管理员对其进行调查),对系统文件进行破坏。因此,在安装WIN 2K操作系统之前,我们必须考虑到这一点,所以我们至少需要建立两个逻辑分区,系统分区和应用程序分区。为了迷惑hacker,我们还应该更换“我的文档”和“Outlook Express”等应用程序的默认文件夹位置,让其分辨不出系统文件存放在哪个分区内。

(2).对于硬盘分区的文件系统格式,推荐使用NTFS分区。首先,NTFS分区增加了对不同文件夹设置不同访问权限的功能,从而增强了系统的安全性。建议在安装NTFS分区的时候,最好是一次性选择全部安装NTFS格式分区,而先选择安装成FAT分区,然后再进行NTFS分区转化的时候,在安装补丁情况下很容易转化不成功而导致系统崩溃。对于安装NTFS分区有一个方面是值得大家注意的,用软盘启动NTFS分区的时候,目前的大部分杀毒软件是没有对病毒进行查杀的,因此这很容易让恶性病毒的入侵,而导致系统不能正常启动。所以,请大家防患于未然,平时就做好对病毒的防范工作。

2、选择适合自己的WIN 2K版本:
WIN 2K SERVER是微软公司出品的多语言操作系统。对于我们国人来说,可以选择安装简体中文版或者英文版。在选择这两种语言的操作系统上,我们给大家对这两种操作系统的优劣进行分析:对于大家来说安装简体中文版的操作系统在语言上是不存在障碍的,而且安装各种基于中文的应用程序是不会存在乱码问题,比如用QQ进行交流或者安装各种网络游戏都是没有任何问题的,但是众所周知的微软的操作系统是漏洞百出的,而且中文版的操作系统漏洞远高于英文版的,再者,对于中文版的操作系统的安全漏洞补丁,一般是漏洞公布出来两周后才会出的,所以在这段期间,你要用自己的方法来防范hacker对新漏洞的攻击。对于WIN 2K原版的英文操作系统,对于大家来说,首先一个就是语言存在一定的问题,其次就是对于应用程序的乱码问题,虽然有些软件能够提供中英文内码的转换,但是毕竟还是比较麻烦的。而英文操作系统是原版操作系统,微软对于其包括安全、性能、配套应用程序等各个方面都是照顾有佳。所以,根据我们的分析,普通个人用户建议使用中文操作系统,而对于企业用户,管理员们最好是安装WIN 2K英文的操作系统。

3、组件的定制:
通常情况下,默认安装WIN 2K操作系统的组件可以说是把大门向hacker敞开,不光是WIN 2K操作系统,包括LINUX/UNIX/VMS操作系统的默认安装是都能让hacker轻轻松松进入系统的。所以我们遵循安全原则“最少的服务+最小的权限=最大的安全”,我们选择一些我们能够用到的服务来进行安装。对于WEB服务器的安装,最小组件是:Internet服务管理器、WWW服务器和公用文件。如果你需要安装其它的组件,对于:Frontpage 2000服务扩展、索引服务两个组件要特别谨慎。

4、选择管理应用程序:
基于对安全和应用方面的需求,选择一个好的管理软件是必要的。WIN 2K的Terminal Service是基于RDP(远程桌面协议)的远程控制软件,这个软件在速度、使用的便捷性、操作方面都是非常不错的。但是它也有不足之处,在Terminal Service进行与真实桌面进行交互操作的时候,往往会让系统处于紊乱状态,进行错误的操作。所以,安全起见,我建议大家可以在安装一个远程控制软件来作为辅助,PcAnyWhere就是一个很好的选择。

5.选择安装顺序:
对于WIN 2K系统的安装顺序一定要注意,首先是补丁的安装,如果你安装好WIN 2K系统后,就直接打上所有的安全补丁,然后再来安装系统组件和其他应用程序,那么我可以说你的系统随时准备着遭受hacker的入侵。原因何在呢?由于补丁的安装都是替换/修改某些系统文件,如果先装补丁,后装应用程序,会把修补好的程序又重新恢复到存在漏洞的状态。再一个,就是对于接入网络的时间。我们一定要在所有的安全漏洞都弥补上的情况下再接入网络,不然系统被病毒感染或hacker入侵,并被破坏的话,我们还需要重新来恢复系统,做一些重复性的工作,等于做无用功。所以,我们要按照安装的顺序,一步一步来进行正确的安装,这样才会让系统最小程度的遭受各种破坏。WIN 2K系统正确的安装顺序应该是:

硬盘分区——选择操作系统安装——选择文件系统格式(NTFS)——选择组件及应用程序进行安装——安装各种系统补丁——安装防火墙等做好安全防范措施——接入Internet网络

二、WIN 2K服务器的安全配置

1、账号的安全管理

(1).账号的安全策略:

A.帐号尽可能少,且尽可能少用来登录;说明:网站帐号一般只用来做系统维护,多余的帐号一个也不要,因为多一个帐号就会多一份被攻破的危险。

B.除过Administrator外,有必要再增加一个属于管理员组的帐号;说明:两个管理员组的帐号,一方面防止管理员一旦忘记一个帐号的口令还有一个备用帐号;另方面,一旦hacker攻破一个帐号并更改口令,我们还有机会重新在短期内取得控制权。

C.所有帐号权限需严格控制,轻易不要给帐号以特殊权限;

D.将Administrator重命名,改为一个不易猜的名字。其他一般帐号也应尊循着一原则。说明:这样可以为hacker攻击增加一层障碍,并且能够防范克隆账号的入侵。

E.将Guest帐号禁用,同时重命名为一个复杂的名字,增加口令,并将它从Guest组删掉;说明:有的hacker工具正是利用了guest 的弱点,可以将帐号从一般用户提升到管理员组。

F.给所有用户帐号一个复杂的口令,长度最少在8位以上,且必须同时包含字母、数字、特殊字符。同时不要使用大家熟悉的单词、熟悉的键盘顺序、熟悉的数字等。说明:口令是hacker攻击的重点,口令一旦被突破也就无任何系统安全可言了,而这往往是不少网管所忽视的地方,据我们的测试,仅字母加数字的5位口令在几分钟内就会被攻破,而所推荐的方案则要安全的多。

G.口令必须定期更改(建议至少两周改一次),且最好记在心里,除此以外不要在任何地方做记录;另外,如果在日志审核中发现某个帐号被连续尝试,则必须立刻更改此帐号(包括用户名和口令);

H.在帐号属性中设立锁定次数,比如改帐号失败登录次数超过5次即锁定改帐号。这样可以防止暴力破解的尝试,同时也使管理员对该帐号提高警惕。

(2).通过注册表的修改来提高WIN 2K账号的安全性

Win2000的账号安全是另一个重点,首先,Win2000的默认安装允许任何用户通过空用户得到系统所有账号/共享列表,这个本来是为了方便局域网用户共享文件的,但是一个远程用户也可以得到你的用户列表并使用暴力法破解用户密码。

禁止139共享空连接:很多朋友都知道可以通过更改注册表Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous=1来禁止139空连接,实际上win2000的本地安全策略(如果是域服务器就是在域服务器安全和域安全策略中)就有这样的选项RestrictAnonymous(匿名连接的额外限制),这个选项有三个值:
0:无。依赖于默认许可权限
1:不允许枚举SAM帐号和共享
2:没有显式匿名权限就不允许访问
0这个值是系统默认的,什么限制都没有,远程用户可以知道你机器上所有的账号、组信息、共享目录、网络传输列表(NetServerTransportEnum等等,对服务器来说这样的设置非常危险。
1这个值是只允许非NULL用户存取SAM账号信息和共享信息。
2这个值是在win2000中才支持的,需要注意的是,如果你一旦使用了这个值,你的共享估计就全部完蛋了,所以我推荐你还是设为1比较好。

删除磁盘分区共享:运行Regedit,然后修改注册表在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters下增加一个键
Name: AutoShareServer
Type: REG_DWORD
Value: 0
然后重新启动您的服务器,磁盘分区共享去掉,但IPC共享仍存在,需每次重启后手工删除。

好了,入侵者现在没有办法拿到我们的用户列表,我们的账户安全了……慢着,至少还有一个账户是可以跑密码的,这就是系统内建的administrator,怎么办?我改改改,在计算机管理->用户账号中右击administrator然后改名,改成什么随便你,只要能记得就行了。不对不对,我都已经改了用户名了,怎么还是有人跑我管理员的密码?幸好我的密码够长,但是这也不是办法呀?嗯,那肯定是在本地或者Terminal Service的登录界面看到的,好吧,我们再来把HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\winlogon项中的Don't Display Last User Name串数据改成1,这样系统不会自动显示上次的登录用户名。将服务器注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon项中的Don't Display Last User Name串数据修改为1,隐藏上次登陆控制台的用户名。

2、WIN 2K服务的安全配置

(1).端口:端口是计算机和外部网络相连的逻辑接口,也是计算机的第一道屏障,端口配置正确与否直接影响到主机的安全,一般来说,仅打开你需要使用的端口会比较安全,配置的方法是在网卡属性-TCP/IP-高级-选项-TCP/IP筛选中启用TCP/IP筛选,不过对于win2000的端口过滤来说,有一个不好的特性:只能规定开哪些端口,不能规定关闭哪些端口,这样对于需要开大量端口的用户就比较痛苦。

(2).IIS:IIS是微软的组件中漏洞最多的一个,平均两三个月就要出一个漏洞,而微软的IIS默认安装又实在不敢恭维,所以IIS的配置是我们的重点,现在大家跟着我一起来:
首先,把C盘那个什么Inetpub目录彻底删掉,在D盘建一个Inetpub(要是你不放心用默认目录名也可以改一个名字,但是自己要记得)在IIS管理器中将主目录指向D:\Inetpub;其次,那个IIS安装时默认的什么scripts等虚拟目录一概删除(麻烦之源呀,还记得吗?我们虽然已经把Inetpub从系统盘挪出来了,但是还是小心为上),如果你需要什么权限的目录可以自己慢慢建,需要什么权限开什么。(特别注意写权限和执行程序的权限,没有绝对的必要千万不要给)

(3).应用程序配置:在IIS管理器中删除必须之外的任何无用映射,必须指的是ASP,ASA和其他你确实需要用到的文件类型,例如你用到stml等(使用server side include),实际上90%的主机有了上面两个映射就够了,其余的映射几乎每个都有一个凄惨的故事:htw, htr, idq,ida……想知道这些故事?去查以前的漏洞列表吧。什么?找不到在哪里删?在IIS管理器中右击主机->属性->WWW服务 编辑->主目录配置->应用程序映射,然后就开始一个个删吧(里面没有全选的)。接着在刚刚那个窗口的应用程序调试书签内将脚本错误消息改为发送文本(除非你想ASP出错的时候用户知道你的程序/网络/数据库结构)错误文本写什么?随便你喜欢,自己看着办。点击确定退出时别忘了让虚拟站点继承你设定的属性。为了对付日益增多的cgi漏洞扫描器,还有一个小技巧可以参考,在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件,可以让目前绝大多数CGI漏洞扫描器失灵。其实原因很简单,大多数CGI扫描器在编写时为了方便,都是通过查看返回页面的HTTP代码来判断漏洞是否存在的,例如,著名的IDQ漏洞一般都是通过取1.idq来检验,如果返回HTTP200,就认为是有这个漏洞,反之如果返回HTTP404就认为没有,如果你通过URL将HTTP404出错信息重定向到HTTP404.htm文件,那么所有的扫描无论存不存在漏洞都会返回HTTP200,90%的CGI扫描器会认为你什么漏洞都有,结果反而掩盖了你真正的漏洞,让入侵者茫然无处下手(武侠小说中常说全身漏洞反而无懈可击,难道说的就是这个境界?)不过从个人角度来说,我还是认为扎扎实实做好安全设置比这样的小技巧重要的多。最后,为了保险起见,你可以使用IIS的备份功能,将刚刚的设定全部备份下来,这样就可以随时恢复IIS的安全配置。还有,如果你怕IIS负荷过高导致服务器满负荷死机,也可以在性能中打开CPU限制,例如将IIS的最大CPU使用率限制在70%。

(4).安全日志:我遇到过这样的情况,一台主机被别人入侵了,系统管理员请我去追查凶手,我登录进去一看:安全日志是空的,倒,请记住:Win2000的默认安装是不开任何安全审核的!那么请你到本地安全策略->审核策略中打开相应的审核,推荐的审核是:
账户管理 成功 失败
登录事件 成功 失败
对象访问 失败
策略更改 成功 失败
特权使用 失败
系统事件 成功 失败
目录服务访问 失败
账户登录事件 成功 失败
审核项目少的缺点是万一你想看发现没有记录那就一点都没辙;审核项目太多不仅会占用系统资源而且会导致你根本没空去看,这样就失去了审核的意义。

与之相关的是:
在账户策略->密码策略中设定:
密码复杂性要求 启用
密码长度最小值 6位
强制密码历史 5次
最长存留期 30天
在账户策略->账户锁定策略中设定:
账户锁定 3次错误登录
锁定时间 20分钟
复位锁定计数 20分钟

同样,Terminal Service的安全日志默认也是不开的,我们可以在Terminal Service Configration(远程服务配置)-权限-高级中配置安全审核,一般来说只要记录登录、注销事件就可以了。

应用程序日志文件存放位置:c:\winnt\system32\config\AppEvent.Evt
安全日志文件存放位置:c:\winnt\system32\config\SecEvent.Evt
系统日志文件存放位置:c:\winnt\system32\config\SysEvent.Evt

(5).目录和文件权限:
为了控制好服务器上用户的权限,同时也为了预防以后可能的入侵和溢出,我们还必须非常小心地设置目录和文件的访问权限,NT的访问权限分为:读取、写入、读取及执行、修改、列目录、完全控制。在默认的情况下,大多数的文件夹对所有用户(Everyone这个组)是完全敞开的(Full Control),你需要根据应用的需要进行权限重设。
在进行权限控制时,请记住以下几个原则:
A.限是累计的:如果一个用户同时属于两个组,那么他就有了这两个组所允许的所有权限;
B.拒绝的权限要比允许的权限高(拒绝策略会先执行)如果一个用户属于一个被拒绝访问某个资源的组,那么不管其他的权限设置给他开放了多少权限,他也一定不能访问这个资源。所以请非常小心地使用拒绝,任何一个不当的拒绝都有可能造成系统无法正常运行;
C.文件权限比文件夹权限高(这个不用解释了吧?)
D.利用用户组来进行权限控制是一个成熟的系统管理员必须具有的优良习惯之一;
E.仅给用户真正需要的权限,权限的最小化原则是安全的重要保障;

(6).预防DoS:
在注册表HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters中更改以下值可以帮助你防御一定强度的DoS攻击
SynAttackProtect REG_DWORD 2
EnablePMTUDiscovery REG_DWORD 0
NoNameReleaseOnDemand REG_DWORD 1
EnableDeadGWDetect REG_DWORD 0
KeepAliveTime REG_DWORD 300,000
PerformRouterDiscovery REG_DWORD 0
EnableICMPRedirects REG_DWORD 0

ICMP攻击:ICMP的风暴攻击和碎片攻击也是NT主机比较头疼的攻击方法,其实应付的方法也很简单,win2000自带一个Routing & Remote Access工具,这个工具初具路由器的雏形(微软真是的,什么都要做?听说最近又要做防火墙了)在这个工具中,我们可以轻易的定义输入输出包过滤器,例如,设定输入ICMP代码255丢弃就表示丢弃所有的外来ICMP报文。

(7).ASP程序安全问题:
安全不仅是网管的事,编程人员也必须在某些安全细节上注意,养成良好的安全习惯,否则,会给hacker造成可乘之机。目前,大多数网站上的ASP程序有这样那样的安全漏洞,但如果写程序的时候注意的话,还是可以避免的。涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,涉及到与数据库连接地用户名与口令应给予最小的权限。
说明:用户名与口令,往往是hacker们最感兴趣的东西,如果被通过某种方式看到源代码,后果是严重的。因此要尽量减少它们在ASP文件中的出现次数。出现次数多得用户名与口令可以写在一个位置比较隐蔽的包含文件中。如果涉及到与数据库连接,理想状态下只给它以执行存储过程的权限,千万不要直接给予该用户以修改、插入、删除记录的权限。
需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。
说明:现在的需要经过验证的ASP程序多是在页面头部加一个判断语句,但这还不够,有可能被hacker绕过验证直接进入,因此有必要跟踪上一个页面。具体漏洞见所附漏洞文档。
防止ASP主页.inc文件泄露问题,当存在asp的主页正在制作并没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象,如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中察看到数据库地点和结构的细节揭示完整的源代码。
解决方案:程序员应该在网页发布前对其进行彻底的调试;安全专家需要固定asp 包含文件以便外部的用户不能看他们。首先对 .inc文件内容进行加密,其次也可以使用 .asp 文件代替 .inc 文件使用户无法从浏览器直接观看文件的源代码。.inc文件的文件名不用使用系统默认的或者有特殊含义容易被用户猜测到的,尽量使用无规则的英文字母。
注意某些ASP编辑器会自动备份asp文件,会被下载的漏洞在有些编辑asp程序的工具,当创建或者修改一个asp文件时,编辑器自动创建一个备份文件,比如:UltraEdit就会备份一个..bak文件,如你创建或者修改了some.asp,编辑器自动生成一个叫some.asp.bak文件,如果你没有删除这个bak文件,攻击有可以直接下载some.asp.bak文件,这样some.asp的源程序就会给下载。
在处理类似留言板、BBS等输入框的ASP程序中,最好屏蔽掉htmljavascript、VBScript语句,如无特殊要求,可以限定只允许输入字母与数字,屏蔽掉特殊字符。同时对输入字符的长度进行限制。而且不但在客户端进行输入合法性检查,同时要在服务器端程序中进行类似检查。
说明:输入框是hacker利用的一个目标,他们可以通过输入脚本语言等对用户客户端造成损坏;
如果该输入框涉及到数据查询,他们会利用特殊查询输入得到更多的数据库数据,甚至是表的全部。因此必须对输入框进行过滤。但如果为了提高效率仅在客户端进行输入合法性检查,仍有可能被绕过,因此必须在服务器端再做一次检查。

(8).PCANYWHERE的安全:
目前,PCANYWHERE是最流行的基于NT与2000的远程控制工具,同样也需要注意安全问题。建议采用单独的用户名与口令,最好采用加密手段。千万不要采用与NT管理员一样的用户名与口令,也不要使用与NT集成的口令。
说明:PCANYWHERE 口令是远程控制的第一个关口,如果与NT的一样,就失去了安全屏障。被攻破后就毫无安全可言。而如果采用单独的口令,即使攻破了PCANYWHERE,NT还有一个口令屏障。及时安装较新的版本。

4、数据库的安全

(1).ACCESS数据库的安全问题:

防止ACCESS mdb 数据库有可能被下载的漏洞,在用ACCESS做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的ACCESS数据库的路径和数据库名称,那么他能够下载这个ACCESS数据库文件,这是非常危险的。
解决方法:
A.为你的数据库文件名称起个复杂的非常规的名字,并把他放在几目录下。所谓 "非常规", 打个比方:
比如有个数据库要保存的是有关书籍的信息, 可不要把他起个"book.mdb"的名字,起个怪怪的名称,比如d34ksfslf.mdb,再把他放在如./kdslf/i44/studi/ 的几层目录下,这样hacker要想通过猜的方式得到你的ACCESS数据库文件就难上加难了。
B.不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如:
DBPath = Server.MapPath("cmddb.mdb")conn.Open "driver=;dbq=" & DBPath假如万一给人拿到了源程序,你的ACCESS数据库的名字就一览无余。因此建议你在ODBC里设置数据源,再在程序中这样写:
conn.open "shujiyuan"
C.使用ACCESS来为数据库文件编码及加密。首先在选取"工具->安全->加密/解密数据库,选取数据库(如:employer.mdb),然后接确定,接着会出现"数据库加密后另存为"的窗口,存为:employer1.mdb。接着employer.mdb就会被编码,然后存为employer1.mdb..要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。
接下来我们为数据库加密,首先以打开经过编码了的 employer1.mdb,在打开时,选择"独占"方式。然后选取功能表的"工具->安全->设置数据库密码", 接着输入密码即可。这样即使他人得到了employer1.mdb文件,没有密码他是无法看到 employer1.mdb的。

(2).SQL SERVER的安全
SQL SERVER是NT平台上用的最多的数据库系统,但是它的安全问题也必须引起重视。数据库中往往存在着最有价值的信息,一旦数据被窃后果不堪设想。
及时更新补丁程序。
说明:与NT一样,SQL SERVER的许多漏洞会由补丁程序来弥补。建议在安装补丁程序之前先在测试机器上做测试,同时提前做好目标服务器的数据备份。
给SA一个复杂的口令。
说明:SA具有对SQL SERVER数据库操作的全部权限。遗憾的是,一部分网管对数据库并不熟悉,建立数据库的工作由编程人员完成,而这部分人员往往只注重编写SQL语句本身,对SQL SERVER数据库的管理不熟悉,这样很有可能造成SA口令为空。这对数据库安全是一个严重威胁。目前具有这种隐患的站点不在少数。
严格控制数据库用户的权限,轻易不要给让用户对表有直接的查询、更改、插入、删除权限,可以通过给用户以访问视图的权限,以及只具有执行存储过程的权限。
说明:用户如果对表有直接的操作权限,就会存在数据被破坏的危险。制订完整的数据库备份与恢复策略。
参考技术B 编辑>链接 创建新映射本回答被提问者采纳 参考技术C 不太懂

怎么查sqlserver 2008中某个数据库的编码方式

在mysql中,information_schema数据库中的schemata表中有所有数据的信息,其中有编码方式,在sql server 中,这样的编码方式该如何得到?
是在程序中获取,比如用java连sql server数据库,获取某个数据库的编码方式,语句怎么写,然后怎么获取成类似utf-8之类的

数据库右键--属性,看排序规则。追问

没怎么说清楚问题,想知道,用程序连sql server ,怎么获取编码方式,类似utf-8之类的

追答

sqlserver是通过排序规则来处理的,默认是支持Unicode。
好象不能看编码,只能看排序规则。排序规则好象就定了编码了。
SELECT CONVERT (varchar, SERVERPROPERTY('collation'));

参考技术A SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')

下面是查询结果:
936 简体中文GBK
950 繁体中文BIG5
437 美国/加拿大英语
932 日文
949 韩文
866 俄文
65001 unicode UFT-8

以上是关于sql server 2005 中怎么创建组和数据库的映射关系的主要内容,如果未能解决你的问题,请参考以下文章

sql server 2005实现树形菜单显示的数据库表怎么设计?

SQL server 2005 的简单语句

sql server 2005数据源配置问题

sql server2005新创建的登录名无法登陆

如何在SQL Server 2005中,新建一个数据库和用户.并给予相应的权限.

SQL SERVER 2008 R2 数据库附加到 SQL server 2005,怎么整