1、sqlserver 2008数据库怎么远程连接怎么打开
登陆SQL Server 2008(windows身份认证),登陆后右击,选择“属性”。
2
左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式。
3
选择“连接”,勾选“允许远程连接此服务器”,建议将“最大并发连接数”按实际情况,进行设置,然后点“确定”。
4
展开“安全性”->“登录名”->“sa”,右键选择“属性”。
5
左侧选择“常规”,右侧选择“SQL Server 身份验证”,并设置密码。
6
选择“状态”,选中“启用”,点击“确定”。
7
右击数据库选择“方面”。
8
在“方面”下接列表框中,选择“服务器配置,“RemoteAccessEnabled”属性和”RemotoDacEnabled”设为“True”,点“确定”。至此SSMS已设置完毕,先退出,再用sa登录,成功即表示sa帐户已经启用。
9
下面开始配置Sql Server Configuration Manager (SSCM),选中左侧的“SQL Server服务”,确保右侧的“SQL Server”以及SQL Server Browser正在运行。
10
打开左侧“SqlServer网络配置”,打开“你自己数据库实例名的协议”,查看右侧的TCP/IP默认是“已禁用”,将其修改为“已启用”。
11
双击打开“TCP/IP”查看“TCP/IP属性”下“协议”选项卡中的“全部侦听”和“已启用”项,是否都是设置成“是”。
12
选择“IP Addersses”选项卡,IP1、IP2、IPAll设置TCP端口为“1433”,TCP动态端口为空值,已启用为“是”。
13
将"客户端协议"的"TCP/IP"也修改为“已启用”。
14
双击打开右侧“TCP/IP”,打开“TCP/IP属性”,将默认端口设为“1433”,已启用为“是”。配置完成,重新启动SQL Server 2008。
15
最后一步,必需要防火墙上把SQL Server 的1433 TCP端口和1434 UDP端口映射出去。
2、如何查看远程链接sqlserver的ip地址
可以使用存储过程和目录视图来管理链接服务器定义:
# 通过执行 sp_addlinkedserver 创建链接服务器定义。
# 通过对 sys.servers 系统目录视图执行查询,查看有关在 SQL Server
的特定实例中定义的链接服务器的信息。
# 通过执行 sp_dropserver 删除链接服务器定义。还可以使用此存储过程删除远程服务器。
至于 sys.servers 视图的定义,可以查看 SQLServer 的帮助信息,内容比较多,还带表格,就不贴在这里了
3、如何查看sqlserver数据库版本
打开SSMS,连接上SQLSERVER,
1, 在连接上的SQLSERVER服务器上会显示版本号,更加具体的信息请右键服务器,选择属性。
2, 新建查询,输入 select @@version ,F5执行就能看到结果。
4、设置服务器提高SQLserver查询速度
1、是否建立了索引?
2、是否网速有问题?
3、是否是有死锁?
4、是否及时收缩日志和数据库空间?
5、查询sqlserver所有服务器名
using System.Data.Sql;
class Program
{
static void Main()
{
// Retrieve the enumerator instance and then the data.
SqlDataSourceEnumerator instance =
SqlDataSourceEnumerator.Instance;
System.Data.DataTable table = instance.GetDataSources();
// Display the contents of the table.
DisplayData(table);
Console.WriteLine("Press any key to continue.");
Console.ReadKey();
}
private static void DisplayData(System.Data.DataTable table)
{
foreach (System.Data.DataRow row in table.Rows)
{
foreach (System.Data.DataColumn col in table.Columns)
{
Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
}
Console.WriteLine("============================");
}
}
}
6、如何用sqlserver查询服务器就有哪些程序在运行?
sqlserver可以查看到有哪些会话。
可通过系统的“性能”来查看:
开始->管理工具->性能(或者是运行里面输入 mmc)然后通过
添加计数器添加 SQL 的常用统计 然后在下面列出的项目里面选择用户连接就可以时时查询到数据库的连接数了。
不过此方法的话需要有访问那台计算机的权限,就是要通过windows账户登陆进去才可以添加此计数器。
7、SQLSERVER 32位服务器 如何查看是否开启了PAE
楼主说的其实是有两个东西,一个是数据库的AWE模式,可以支持32位系统超过4G的实际寻址。你可以在数据库实例上右键,然后属性,点击内存(或者Momory),看 USE AWE to allocate more memory(或者是对应的中文,我的是英文版)是否勾选上。
PAE即物理地址扩展,Windows 2003 内存管理器使用 PAE 向程序提供更多的物理内存。程序本身并不知道实际的内存大小。所有的内存管理和 PAE 内存分配都由内存管理器处理,与运行的程序无关。
AWE即地址窗口化扩展,是内存管理器功能的一套应用程序编程接口 (API),它使程序能够寻址更多内存 — 超过标准 32 位寻址的 4 GB 内存空间。
对于PAE和AWE要注意的是:PAE即物理地址扩展是Windows 2003 内存管理器的一项功能,也就是说其是基于系统的,而AWE即地址窗口化扩展是一套应用程序编程接口 (API)。
在 Windows Server 2003 中,当服务器使用热插拔内存设备时,会自动启用 PAE。而对于我们普通人来说不可能会使用价格高昂的服务器机器,必须在 Boot.ini 文件中使用 /PAE 开关来利启用 PAE。使用大于 4GB 的内存。
以下是一个 Boot.ini 文件的示例,其中已添加了 PAE 开关:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE
一台新服务器,内存配置有4GB,开机也正确显示4G,但安装了WIN2003SP1以后,系统显示只有3.37G,原以为内存有硬件故障,后经检查,按如下做。
1.打开系统中的大内存支持(windows)
若要启用 Windows 2000 Advanced Server 或 Windows 2000 Datacenter Server 支持
大于4GB的物理内存,必须将参数 /pae 添加到 boot.ini 文件中。
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server"
/fastdetect
改为
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server"
/fastdetect /PAE
这个改好后,要重启系统的
2.启用锁定内存页选项(windows)
启用锁定内存页选项
在"开始"菜单上单击"运行"子菜单,然后在"打开"框中键入"gpedit.msc"。
在"组策略"控制台上,展开"计算机配置",然后展开"Windows 设置"。
展开"安全设置",然后展开"本地策略"。
选择"用户权限分配"复选框。
详细资料窗格中随即显示出策略。
在详细资料窗格中,双击"锁定内存页"。
在"本地安全策略设置"对话框中,单击"添加"按钮。
在"选择用户或组"对话框中,添加有权运行 sqlservr.exe 的帐户。
3.启用SQL的AWE
若要启用 AWE,请将 awe enabled 设置为 1。除非指定了 max server memory 的值,否
则 SQL Server 将保留几乎所有可用内存,只留下 128 MB 或更少。
如果已成功启用该选项,则当 SQL Server 2000 实例启动时,SQL Server 错误日志中将
出现"已启用地址窗口扩展"这条消息。
awe enabled 是高级选项。如果正在使用 sp_configure 系统存储过程更改该设置,则只有
当 show advanced options 设置为 1 时才能更改 awe enabled。
code 如下,设定SQL 使用6G的内存
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
sp_configure 'max server memory', 6144
RECONFIGURE
GO
必须重新启动 SQL Server 2000 实例才能使更改生效。
net stop mssqlserver
net start mssqlserver
这样,SQL 服务启动后,就会把6G的内存给锁定,完全供SQL使用
仅 Windows 2000 Datacenter Server、 Windows 2000 Advanced Server、Windows Server 2003、Enterprise Edition 和 Windows Server 2003 Datacenter Edition 支持 PAE。 在 32 位 Windows 中,默认情况下将禁 用 PAE,并且必须在 BOOT.INI 文件中设置 /pae 引导参数才可启用 PAE
为什么要这样做呢,因为32位的系统只能寻址到4G的内存空间,通过修改BOOT文件 可以把其余内存做为可扩展物理内存 但是如果自己内存刚好为4G的话 就不建议修改了 效果不是很理想
硬件支持最大的内存容量可以这么算:支持最大内存容量=2的N次方位。
32位硬件支持的最大内存容量换算下来就是2的32次方,换算下来就是4G,64位硬件支持的最大内存容量是2的64次方,换算下来就是16EB=16*1024PB=16*1024*1024TB=16*1024*1024*1024GB。
8、查看SQLServer服务器是否被入侵的方法
1、入侵者入侵后一般会开服务器的3389,建立隐藏用户,然后登录。我们只要到C:Documents and Settings这个目录下看看是否有可以的用户名就可以了,不管是不是隐藏的用户,都会在这里显示出来。2、有些入侵者喜欢留一个有高权限的sqlserver数据库用户,当作后门,我们可以打开登陆sqlserver的查询分析器,然后依次打开master--系统表--dbo.sysxlogins(sqlserver2000下,sql2005和2008下,小王没找到如何查看数据库用户的方法,如果您知道请指点),在这个窗口的name列中可以看到sqlserver数据库的用户,一般情况下会有3个用户,一个是sa,一个BUILTINAdministrators,还有一个是NULL,如果还存在其他用户,就有可能是被人入侵了或者是我上面讲的那些情况,就需要注意点了,当然不一定就那三个用户,小王还见过name下有多个sa和NULL的,但不知道是怎么回事,具体问题还需要具体分析。
9、查询sqlserver所有服务器名
.net 列出局域网内所有的SQLserver服务器的名字
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Text;
using System.Runtime.InteropServices;
namespace showSqlServer
{
/**//// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
/**//// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
[DllImport("odbc32.dll")] private static extern short SQLAllocHandle(short hType, IntPtr inputHandle, out IntPtr outputHandle);
[DllImport("odbc32.dll")]
private static extern short SQLSetEnvAttr(IntPtr henv, int attribute, IntPtr valuePtr, int strLength);
[DllImport("odbc32.dll")]
private static extern short SQLFreeHandle(short hType, IntPtr handle);
[DllImport("odbc32.dll",CharSet=CharSet.Ansi)]
private static extern short SQLBrowseConnect(IntPtr hconn, StringBuilder inString,
short inStringLength, StringBuilder outString, short outStringLength,
out short outLengthNeeded);
private const short SQL_HANDLE_ENV = 1;
private const short SQL_HANDLE_DBC = 2;
private const int SQL_ATTR_ODBC_VERSION = 200;
private const int SQL_OV_ODBC3 = 3;
private const short SQL_SUCCESS = 0;
private const short SQL_NEED_DATA = 99;
private const short DEFAULT_RESULT_SIZE = 1024;
private System.Windows.Forms.ComboBox comboBox1;
private const string SQL_DRIVER_STR = "DRIVER=SQL SERVER";
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
public string[] GetServers()
{
string[] retval = null;
string txt = string.Empty;
IntPtr henv = IntPtr.Zero;
IntPtr hconn = IntPtr.Zero;
StringBuilder inString = new StringBuilder(SQL_DRIVER_STR);
StringBuilder outString = new StringBuilder(DEFAULT_RESULT_SIZE);
short inStringLength = (short) inString.Length;
short lenNeeded = 0;
try
{
if (SQL_SUCCESS == SQLAllocHandle(SQL_HANDLE_ENV, henv, out henv))
{
if (SQL_SUCCESS == SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(IntPtr)SQL_OV_ODBC3,0))
{
if (SQL_SUCCESS == SQLAllocHandle(SQL_HANDLE_DBC, henv, out hconn))
{
if (SQL_NEED_DATA == SQLBrowseConnect(hconn, inString, inStringLength, outString,
DEFAULT_RESULT_SIZE, out lenNeeded))
{
if (DEFAULT_RESULT_SIZE < lenNeeded)
{
outString.Capacity = lenNeeded;
if (SQL_NEED_DATA != SQLBrowseConnect(hconn, inString, inStringLength, outString,
lenNeeded,out lenNeeded))
{
throw new ApplicationException("Unabled to aquire SQL Servers from ODBC driver.");
}
}
txt = outString.ToString();
int start = txt.IndexOf("{") + 1;
int len = txt.IndexOf("}") - start;
if ((start > 0) && (len > 0))
{
txt = txt.Substring(start,len);
}
else
{
txt = string.Empty;
}
}
}
}
}
}
catch (Exception ex)
{
#if (DEBUG)
MessageBox.Show(ex.Message,"Acquire SQL Servier List Error");
#endif
txt = string.Empty;
}
finally
{
if (hconn != IntPtr.Zero)
{
SQLFreeHandle(SQL_HANDLE_DBC,hconn);
}
if (henv != IntPtr.Zero)
{
SQLFreeHandle(SQL_HANDLE_ENV,hconn);
}
}
if (txt.Length > 0)
{
retval = txt.Split(",".ToCharArray());
}
return retval;
}
/**//// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.SuspendLayout();
//
// comboBox1
//
this.comboBox1.Location = new System.Drawing.Point(56, 32);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(121, 20);
this.comboBox1.TabIndex = 0;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(440, 302);
this.Controls.Add(this.comboBox1);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
#endregion
/**//// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
this.comboBox1.Items.Clear();
string[] SqlServer=this.GetServers();
if(SqlServer==null ||SqlServer.Length==0)
return;
foreach(string server in SqlServer)
{
this.comboBox1.Items.Add(server);
}
if(this.comboBox1.Items.Count>0)
this.comboBox1.SelectedIndex=0;
}
}
}
10、如果程序连不上SQLserver数据库服务器,你会怎么排除这个故障
1:查看程序的数据库连接字符串是否正确
2:在SQLServer配置管理器中查看MSSQLServer的TCP/IP协议是否已经启版用
3:查看TCP协议使用的端口权是不是1433
4:查看服务器各层防火墙是否打开了SQLServer所使用的通讯端口
5:查看服务器在SQLServer所使用的通讯端口上是否能传入回应的请求