当前位置: 代码迷 >> Sql Server >> sql验证登录时附加数据库的文件权限有关问题
  详细解决方案

sql验证登录时附加数据库的文件权限有关问题

热度:17   发布时间:2016-04-24 09:52:40.0
sql验证登录时附加数据库的文件权限问题
我们的安装程序中有自动附加数据库,但是没有权限,最初用了个偷懒的办法,每次安装前把sql服务的登录身份调成system用户,但是这样终究不是个好办法,因为修改登录身份还得重启sql服务,安装环境不一定允许这么做的,所以现在就在程序中给解压出来的数据库文件加权限,我想的既然把sql服务登录身份改成system用户就能附加,那么应该是只要sql服务的登录用户有权限就行,而一般很少有更改sql服务默认登录身份的,于是就给network service用户加上修改权限,但是失败了,现在的问题就是到底应该给哪个用户加权限?
注:我做过试验,用Windows验证登录sql手动把数据库附加上后查看文件权限,多出来个什么“sqlserver2005mssqluser$计算机名$sql实例名”这样的用户有完全控制权限,我猜程序中给它加权限就可以了,可是这个名字好奇怪,程序中应该怎么样才能获取到这个用户名?而且选择用户或组对话框中用这个名字是查找不到结果的,所以我也很怀疑究竟能不能直接拿这个名字来加权限,望各位高手赐教,多谢。
------解决思路----------------------
只能说没看懂
------解决思路----------------------
直接从注册表那读取可以吗?
------解决思路----------------------
这个,我也在找~~

你拿你的数据库, 试下以下脚本~~
看什么结果
declare @account varchar(200); 
declare @service_key varchar(200); 
set @service_key='SYSTEM\CurrentControlSet\Services\'+@@SERVICENAME;   
exec master.dbo.xp_regread  @rootkey='HKEY_LOCAL_MACHINE', @key=@service_key, @value_name='ObjectName', @value=@account output;   
select @account;
  相关解决方案