Stored Procedure checking for File existance

Can a stored procedure read a physical drive. I want to make an stored procedure that sets a Boolean value based on the existence of a file on a drive. It would not be located on the same server as SQL. Are there any security issues too. An example would be nice.
rianAsked:
Who is Participating?
 
mironConnect With a Mentor Commented:
sql users authenticated via sql server authentication are not the ones you need to worry when connecting to remote share. Please ,try to find account, Windows account that is running sql server, then everything will be clear.
0
 
Anthony PerkinsCommented:
Please maintain these open questions:

2000 Mapping Error Date: 07/25/2001 01:53PM PST
http://www.experts-exchange.com/win2k/Q_20157467.html
Flex Grid Question Date: 06/06/2002 01:09PM PST  
http://www.experts-exchange.com/visualbasic/Q_20308730.html
FlexGrid Multiple selection Date: 04/16/2002 08:21AM PST
http://www.experts-exchange.com/visualbasic/Q_20290075.html

Thanks,
Anthony

0
 
nigelrivettCommented:
I usually do it via a dir command but you could also use the file system object.

create procedure spCheck
@filename varchar(128) ,
@fileexists int output
as

select @fileexists = 0
create table #a (s varchar(1000))
declare @sql varchar(1000)
select @sql = 'dir c:\dir\*.*'
insert #a exec xp_cmdshell @sql
if exists (select * from #a where s like '%' + @filename + '%'
select @fileexists = 1

go

You will need permission on the directory for the user context under which xp_cmdshell runs on your system - probably the sql server service.
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
mironCommented:
an extended stored procedure xp_fileexist migth be of help.

execute master.dbo.xp_fileexist 'C:\boot.ini'

output

[File Exists] 1 -- integer
[File is a Directory] 0 --integer
[Parent Directory Exists] 1 --integer
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
>>it would not be located on the same server as SQL
This said, the stored proc can only see local drives to the SQL Server, for drives on other PC it would be an UNC path (\\workstation\C$\), for which the (admin) permissions need to be given
CHeers
0
 
rianAuthor Commented:
WHat kind of security do I need to setup. I have a server called MAserver which is connected to my machine. However when I do a
execute master.dbo.xp_fileexist '\\maserver\cdrive\config.sys'

it gives me 0,0,0 in all three fields. that file does exist. and I am logged on using query analyzer as sa. plus xp_fileexist is set for public access.
Ofcourse, this procedure will probably be run on individual sql accounts.
0
 
mironCommented:
Looks like stored procedure is working, it returned zeros, indicative that it was un-able to see the share.

I would verify account running sql server, it need to be domain account, not a local to the machine running sql server, also this account need to have "full control" privilege granted to access the share, where file was checked.

Cheers
0
 
rianAuthor Commented:
I am not sure how you can set security setting in Windows for SQL users only. For example, I have a SQL user called joe with password joeb and when the user logs on, the sql connection is made with his username and password.
0
 
CleanupPingCommented:
rian:
This old question needs to be finalized -- accept an answer, split points, or get a refund.  For information on your options, please click here-> http:/help/closing.jsp#1 
EXPERTS:
Post your closing recommendations!  No comment means you don't care.
0
All Courses

From novice to tech pro — start learning today.