1

我有一个以前的 XP 应用程序,我必须在 WIN 7、SQL Server 2008 Express 和 VSC# 上复活。

我有一个可以执行以下操作的用户

SELECT * INTO dbo.[CARD DEF GENERAL POINT]
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                'C:\Users\E151624\Documents\TagConversionRefFiles\Card Def.accdb';'admin';'',[CARD DEF GENERAL POINT])

用户从 VSC# 应用程序连接并可以运行上面的查询。在重新创建用户时,它无权从程序或 SQL 查询窗口运行此查询。目前,该用户是具有 dbo 权限的 SQL Auth 用户,但该用户显然没有访问 C: 驱动器上文件的权限。我尝试创建一个 Windows 用户,但即使对该用户具有管理员权限,它仍然无法正常工作,所以我一定是做错了什么(我不记得用户配置来自 XP)。

顺便说一句,即席查询已启用:

name    minimum maximum config_value    run_value
access check cache bucket count 0   16384   0   0
access check cache quota    0   2147483647  0   0
Ad Hoc Distributed Queries  0   1   1   1
affinity I/O mask   -2147483648 2147483647  0   0
affinity mask   -2147483648 2147483647  0   0
Agent XPs   0   1   0   0
allow updates   0   1   0   0
awe enabled 0   1   0   0
blocked process threshold (s)   0   86400   0   0
c2 audit mode   0   1   0   0
clr enabled 0   1   0   0
cost threshold for parallelism  0   32767   5   5
cross db ownership chaining 0   1   0   0
cursor threshold    -1  2147483647  -1  -1
Database Mail XPs   0   1   0   0
default full-text language  0   2147483647  1033    1033
default language    0   9999    0   0
default trace enabled   0   1   1   1
disallow results from triggers  0   1   0   0
filestream access level 0   2   0   0
fill factor (%) 0   100 0   0
ft crawl bandwidth (max)    0   32767   100 100
ft crawl bandwidth (min)    0   32767   0   0
ft notify bandwidth (max)   0   32767   100 100
ft notify bandwidth (min)   0   32767   0   0
index create memory (KB)    704 2147483647  0   0
in-doubt xact resolution    0   2   0   0
lightweight pooling 0   1   0   0
locks   5000    2147483647  0   0
max degree of parallelism   0   64  0   0
max full-text crawl range   0   256 4   4
max server memory (MB)  16  2147483647  2147483647  2147483647
max text repl size (B)  -1  2147483647  65536   65536
max worker threads  128 32767   0   0
media retention 0   365 0   0
min memory per query (KB)   512 2147483647  1024    1024
min server memory (MB)  0   2147483647  0   8
nested triggers 0   1   1   1
network packet size (B) 512 32767   4096    4096
Ole Automation Procedures   0   1   0   0
open objects    0   2147483647  0   0
optimize for ad hoc workloads   0   1   0   0
PH timeout (s)  1   3600    60  60
precompute rank 0   1   0   0
priority boost  0   1   0   0
query governor cost limit   0   2147483647  0   0
query wait (s)  -1  2147483647  -1  -1
recovery interval (min) 0   32767   0   0
remote access   0   1   1   1
remote admin connections    0   1   0   0
remote login timeout (s)    0   2147483647  20  20
remote proc trans   0   1   0   0
remote query timeout (s)    0   2147483647  600 600
Replication XPs 0   1   0   0
scan for startup procs  0   1   0   0
server trigger recursion    0   1   1   1
set working set size    0   1   0   0
show advanced options   0   1   1   1
SMO and DMO XPs 0   1   1   1
SQL Mail XPs    0   1   0   0
transform noise words   0   1   0   0
two digit year cutoff   1753    9999    2049    2049
user connections    0   32767   0   0
user instance timeout   5   65535   60  60
user instances enabled  0   1   1   1
user options    0   32767   0   0
xp_cmdshell 0   1   1   1
4

2 回答 2

0

SQL Server 具有相当复杂的权限。

我可能有这个错误,但我认为访问本地或网络驱动器的权限是基于 SQL Server 进程本身的所有者。如果您转到控制面板 --> 管理工具 --> 服务,则查找 MSSQL 作为服务。这是数据库的侦听器进程。

其中一列是“登录身份”。那是需要文件系统权限的用户。

于 2012-08-28T16:21:00.783 回答
0

这个问题和这个问题一样。

但是请注意,如果您不使用 Jet 提供程序,而是使用 ACE 提供程序(就像我一样),则必须将值放在该提供程序的键下。

于 2016-04-25T18:00:49.403 回答