我有一个以前的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#app连接的用户可以运行上面的查询。在重新创建用户时,它无权从程序或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
答案 0 :(得分:0)
SQL Server具有相当复杂的权限。
我可能有这个错误,但我认为访问本地或网络驱动器的权限是基于SQL Server进程本身的所有者。如果你去控制面板 - >管理工具 - >服务,寻找MSSQL即服务。这是数据库的监听程序。
其中一列是“登录为”。那是需要文件系统权限的用户。
答案 1 :(得分:0)
此问题与this question相同。
但请注意,如果您不使用Jet提供程序,但使用ACE提供程序(就像我一样),则必须将该值放在该提供程序的密钥下。