SQL Server 2012
在FILESTREAM
启用的情况下运行。以具有只读权限的用户身份登录 ( db_datareader
) 我成功运行了以下代码。filePath
和是通过使用 filestream 选项在 sql server 2008transactionContext
中存储文件中的描述获得的。
using (var transaction = new TransactionScope())
{
// filePath and transactionContext are obtained as described here:
// https://stackoverflow.com/questions/6463343/storing-files-in-sql-server-2008-using-the-filestream-option
using (var stream = new SqlFileStream(filePath, transactionContext, FileAccess.Write, FileOptions.SequentialScan, 0))
{
var b = System.Text.Encoding.Unicode.GetBytes("OVERWRITE");
stream.Write(b, 0, b.Length);
}
}
出于性能原因我想使用SqlFileStream
,但我不希望我的db_datareader
用户能够修改文件!可以通过存储过程添加文件,这没关系。但从那时起,文件被认为是只读的。
如何将 FILESTREAM 数据设为只读?
即我想禁止以写访问权限打开文件!