我需要安装一个 SQL Server Express 实例(作为管理员),以后可以由普通用户读取和修改。
我遇到了http://msdn.microsoft.com/en-us/library/ms254504.aspx,我试图让它像那里所说的那样工作,使用这个连接字符串:
Provider=sqloledb;Data Source=.\\DUBOCALC;Integrated Security=true;User Instance=true;AttachDBFilename=|DataDirectory|\\" + HelperClasses.DuboCalcSettings.dbname + ".mdf;Initial Catalog=DUBOCALC;Trusted_Connection=yes;
我遇到的问题是该实例是在 下创建的C:\Program Files\Microsoft SQL Server\MSSQL10.INSTANCENAME
,但所有这些都在管理员文件夹下,因此普通用户无法访问.mdf
文件所在的位置。
在我的引导程序文件中,我有以下行来安装 SQL Express:
<Command PackageFile="SQLEXPR32_x86_ENU.EXE"
Arguments='/q /hideconsole /action=Install /features=SQL /instancename=DUBOCALC /enableranu=1 /sqlsvcaccount="NT Authority\Network Service" /SQLSYSADMINACCOUNTS="Builtin\Users" /skiprules=RebootRequiredCheck'
EstimatedInstalledBytes="225000000"
EstimatedInstallSeconds="420">`
请问我该怎么做?
我认为这是一个非常常见的用途,以管理员身份安装 SQL Server Express 实例,然后以用户身份运行它,但我找不到任何有用的信息来帮助我完成这项工作。
提前非常感谢大家,曼努埃尔。
/SQLSYSADMINACCOUNTS 将用户和组添加到 SQL Server 系统管理员组(功能强大)。那个 sys admin 组是一个 sql server 级别的安全概念。
SQL Server 和 SQL Server Express 作为服务运行(它的运行方式并不决定最终用户的安全性)。因此,数据目录(和 .mdf 文件)的权限并不能控制最终用户的连接方式。
您的连接字符串应类似于:
默认情况下,SQL Express 安装在名为“SQLExpress”的命名实例下,因此数据源是运行服务的机器名称,然后是 \ 实例名称。集成安全性告诉客户端使用其当前凭据进行连接。如果该用户在具有系统管理员角色成员资格的组中,它将非常强大。
这是一个包含更多连接字符串示例的链接:
http://www.connectionstrings.com/sql-server-2005
您还可以使用 sql 帐户(未集成),然后将其嵌入到连接字符串中: https ://stackoverflow.com/questions/997169/c-sharp-2008-sql-server-express-connection-string
您必须编辑运行 SQL Server 服务的用户。您可以在 services.msc 选项卡上执行此操作