⑴ 怎么打开sql server阻止了对组件ad hoc
用08R2可以:
SQL code
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
/*
Configuration option 'show advanced options' changed from 0 to 1. Run the RECONFIGURE statement to install.
Configuration option 'Ad Hoc Distributed Queries' changed from 0 to 1. Run the RECONFIGURE statement to install.
*/
SELECT @@version
/*
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
*/
⑵ 怎样启用Ad Hoc Distributed Queries求答案
1、启用Ad Hoc Distributed Queries的方法 SQL Server 阻止了对组件'Ad Hoc Distributed Queries' 的STATEMENT'OpenRowset/OpenDatasource'的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用。sp_configure 启用 'Ad Hoc Distributed Queries'。 启用Ad Hoc Distributed Queries的方法,执行下面的查询语句就可以了: 1. exec sp_configure 'show advanced options',12. 3. reconfigure4. 5. exec sp_configure 'Ad Hoc Distributed Queries',16. 7. reconfigure8. 使用完毕后,记得一定要关闭它,因为这是一个安全隐患,切记执行下面的SQL语句: 1. exec sp_configure 'Ad Hoc Distributed Queries',02. 3. reconfigure4. 5. exec sp_configure 'show advanced options',06. 7. reconfigure8. 2、使用示例 创建链接服务器 1. exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '2. 3. exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 '4. 查询示例 1. select * from ITSV.数据库名.dbo.表名2. 导入示例 1. select * into 表 from ITSV.数据库名.dbo.表名2. 以后不再使用时删除链接服务器 1. exec sp_dropserver 'ITSV ', 'droplogins '2. 3、连接远程/局域网数据(openrowset/openquery/opendatasource) 1、openrowset 查询示例 1. select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)2. 生成本地表 1. select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)2. 把本地表导入远程表 1. insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)2. 3. select *from 本地表4. 更新本地表 1. update b2. 3. set b.列A=a.列A4. 5. from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b6. 7. on a.column1=b.column18. openquery用法需要创建一个连接。 首先创建一个连接创建链接服务器 1. exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '2. 查询 1. select * FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ')2. 把本地表导入远程表 1. insert openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ')2. 3. select * from 本地表4. 更新本地表 1. update b2. 3. set b.列B=a.列B4. 5. FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') as a6. 7. inner join 本地表 b on a.列A=b.列A8. 2、opendatasource/openrowset 1. SELECT * FROM opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta2. 把本地表导入远程表: 1. insert opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ').数据库.dbo.表名2. 3. select * from 本地表4. 关于SQL Server数据库中使用T-SQL语句访问远程数据库的操作就介绍到这里了,希望本次的介绍能够对您有所收获! 作者:不详 来源:网络
⑶ SQL代理无法启动怎么办
【处理方法】
一、配置环境
服务器环境为32位Intel® Xeon® CPU E54410 @2.33GHz双路双核开启超线程,8.00GB的内存,RAID10。
1.根据最小权限原则,安装完数据库及SP3补丁后,建立Users组用户SqlStartUser。
2.通过SQL Server配置管理器配置启用TCP/IP协议,IPALL的TCP端口改为32959。SQL Server(MSSQLSERVER)和SQL Server Agent(MSSQLSERVER)的服务启动账号为SqlStartUser。
3.本地安全设置->本地策略->用户权限分配->内存中锁定页面添加SqlStartUser。
4.勾选使用AWE分配内存。最小服务器内存(MB)5500,最大服务器内存(MB)7200,其他留给操作系统。
二、检查步骤
1.检查本地账号SqlStartUser隶属于哪几个组:本地Windows组之Users组;本地Windows组之SQL Server服务账户组SQLServer2005MSSQLUser$DBSRV1$MSSQLSERVER;本地Windows组之SQL Server服务账户组SQLServer2005SQLAgentUser$DBSRV1$MSSQLSERVER。
2.检查数据库登录名是否有DBSRV1SqlStartUser。
3.检查事件查看器应用程序有关服务启动的过程信息。
三、类型来源 描述
①审核成功MSSQLSERVER用户 'DBSRV1 SqlStartUser' 登录成功。连接: trusted. [客户端: <local machine>]
②信息MSSQLSERVER配置选项 'show advanced options' 已从 1 更改为 1。请运行 RECONFIGURE 语句进行安装。
③信息MSSQLSERVERSQL Server 阻止了对组件 'Agent XPs' 的 过程'dbo.sp_sqlagent_has_server_access' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Agent XPs'。有关启用 'Agent XPs' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。
④信息MSSQLSERVERSQL Server 阻止了对组件 'Agent XPs' 的 过程'dbo.sp_sqlagent_get_startup_info' 的访问......
⑤错误MSSQLSERVERSQLServerAgent could not be started (reason: SQLServerAgent 必须能够以 SysAdmin 身份连接到 SQLServer,但“(未知)”不是 SysAdmin 角色的成员)。
⑷ 如何设置sqlserver2008访问次数
一、跨数据库访问
第一种方式
SELECT * FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名
WHERE 条件
第二种方式
在sql server组->服务->安全性->链接服务器下建立一个具有别名的链接服务器。然后通过以下方式访问:
SELECT * FROM [链接服务器名].库名.dbo.表名
WHERE 条件
需要注意的是建立链接数据库服务器类型如果选择“SQL server”,那么链接服务器名称必须用要链接的服务器的在网络中的行猜机器名或IP,如果要使用其它别名,可以在WINDOWS\system32\drivers\etc\hosts文件里添加一个别名的映射。
解除SQL阻止(sqlserver 2005情况)
SQL Server 阻止了对组件 ‘Ad Hoc Distributed Queries’ 的 STATEMENT’OpenRowset/OpenDatasource’ 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 ‘Ad Hoc Distributed Queries’。有关启用 ‘Ad Hoc Distributed Queries’ 的详细信息,请参阅 SQL Server 联机丛书中的 “外围应用配置器”。
因为SQL2005默认是没有开启’Ad Hoc Distributed Queries’ 组件,开启方法如下
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO
关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries', 0
reconfigure
exec sp_configure 'show advanced options', 0
reconfigure
二、分布式事务的配置
1.用DTCPing.exe工具测试两台机器的DTC服务是否可以联通。
2.如果有问题检查MSDTC服务是否启动。
3.MSDTC依赖于RPC,RPC使用的端口是135,测试135端口是否打开.是否有防火墙?如果有先关了防火墙. telnet IP 135 如果是关闭的打开它.
4.打开“控制面板->锋碰管理工具->组件服务”,然后展开“组件服务->计算机->我的电脑”右键属性。银带谈选择MSDTC的Tab栏,点击安全性配置按钮,打开窗口,将“网络DTC访问”选项选中,并将“允许远程客户端”,“允许入站”,“允许出站”都选中,并选择“不要求进行验证”,“启用事务Internet协议(TIP)事务”,“启用XA事务”都选中。然后确定即可。(以上选项windows默认不开放,必须配置)
5.检查你的两台服务器是否在同一个域中. 如果不在同一个域中,是否建立可信任联接.
6.如果是WIN2000,升级到SP4
7.确认MDAC版本是2.6以上,最好是2.8.
8.在SQL server存储过程中使用分布式事务时,必须SET XACT_ABORT ON --设置分布式事务如果发生问题主动回滚操作
9.可以声明使用BEGIN DISTRIBUTED TRANSACTION,如果未明确生明,在事务块中包含链接服务器的访问,SQL server会自动升级成分布式事务。
⑸ SQL代理无法启动
对于服务器上数据的备份工作是网管员日常工作中最重要的工作之一,SQLServerAgent服务使得我们可以用SQL上的“数据库维护计划”功能来自动备份数据,但最近我发现服务器上SQLServerAgent服务无法启动了,回想最近所做的操作,原来是因为我把SQL中Builtin/Administrators这个帐号的服务器访问权限禁止掉了,因为这个帐号的存在对于SQL来说很不安全,但又不想删除,因此把它的权限禁止,结果导致SQLServerAgent服务无法启动。
解决的方法很简单,只要删除这个帐号,再建一个同时具有系统管理权限和SQL管理权限的用户,然后用这个用户去启动SQLServerAgent服务就可以了。以下是操作步骤:
1、打开企业管理器,打开左边的实例->安全性->登录,在右边空白处右击鼠标,选“新建登录”,单击“名称:”右边的按钮,会出现很多帐号名,选择一个具有windows超级管理员权限的用户(如Administrator),单击“添加”,再在“服务器角色”标签中选中“System Administrators”打勾,确定。
2、打开企业管理器左边的“管理”,右击“SQLServer代理”,选属性->常规->服务启动帐户,选“本帐户”,然后在旁边输入刚才所建的帐户和密码(例如:.\Administrator),密码是此用户的密码,确定。
3、最后,右击“SQLServer代理”,选“启动”,就能看到Agent成功启动了。
⑹ 如何将ACCESS数据库导入到SQLSERVER
A1. 安装 SQLServer
A2. 建立 SQLServer 数据库
在sqlserver数据库的“企业管理器”中新建一个数据库,命名为sample,建好后在sqlserver安装目录\MSSQL\Data
文件夹下会生成sample_Data.MDF、sample_Log.LDF两个文件
具体步骤:依次展开sql server 组 ==》右击数据库==》新建数据库==》命名sample==》确定
A3. 导入表结构
a. 建立表结构脚本 –
执行SqlSvrTbl.bat从sample.mdb抽取表结构,sample.mdb一定是当前型号的数据库,即执行makemdb、getmdb后获取的,
注:SqlSvrTbl.bat可以在任意目录执行,执行时会出现如下信息(此报错信息可以忽略,该命令执行时间比较长):
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 不能读取记录;
在 'MSysQueries' 上没有读取数据权限。
at
sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6026)
……
b. 读入表结构脚本
在sqlserver数据库的“查询分析器”界面中读入上一步生成的SqlSvrTbl.sql脚本,生成数据库结构
具体步骤:打开上一步生成的SqlSvrTbl.sql脚本===》点击工具栏的“执行查询”按钮(或 按F5 执行)
注意:类似警告信息可忽略,错误要查明原因。
警告: 已创建表 'Department',但其最大行大小(17573)超过了每行的最大字节数(8060)。如果结果行长度超过 8060
字节,则此表中行的 INSERT 或 UPDATE 将失败。
A4. 导入数据
使用sqlserver的“导入和导出数据”功能,按步骤将access数据库中的数据导入到sqlserver数据库的sample数据库中
具体步骤:运行“导入导出数据”工具==》下一步 ==》选择 数据源:Microsoft
Access
==》在“文件名”处,浏览打开需要导入的数据源 sample.mdb ==》下一步
==》选择目的数据库:在“数据库”下拉列表中选择之前建好的sample
==》一直“下一步” 到“选择源表和视图”将所有要导入的表和视图
“勾选” 执行“下一步” ==》点“下一步”==》点“完成”开始导入
注意:如果在导入完成后报如下错误提示,说明导入有错
错误提示:
在目的的行号为1处出错.到目前为止,在改任务中遇到错误数:1.
插入错误、列58("Birthday",DBTYPE_DBTIMESTAMP)、状态6:数据溢出。
对于造型说明无效的字符值。
A5. NHS 服务器连接数据库
a. 将nhssystem.mdb 手工拷到本机的%JXCRUN%\Bin文件夹中
b.用客户端登录软件。
如果出现“admin”用户不存在,在sqlserver中用查询管理器查询“select * from sysuser ”
看结果跟access中数据库中sysuser中数据是否匹配。如果不匹配说明数据库有误,需要更换数据库。
如果出现sa用户密码错误,没有连接上,先关掉软件。在sqlserver企业管理器中,打开“安全性”==》“登录”==》右击sa更改密码即可。
在没有插网线的情况下,如果出现“不能连接SqlServer 或SqlServer
拒绝连接”的错误,将网线插上试试看是否可以。如果还不行,查看SqlServer是否启动。
⑺ 你好,我想问您一个问题,我在使用SQL Server 2008 R2运行存储过程发送邮件的时候遇到了下面的错误。
这个是服务器配置的问题:
你自己网络搜下: SQL Server 阻止了对组件 'Database Mail XPs' 的 过程 'dbo.sp_send_dbmail' 的访问
这里不方便发URL。按教程进行配置