将sql server连接设置为readonly?

时间:2010-05-18 08:44:25

标签: sql sql-server

如何将SQL Server连接设置为只读?我尝试使用谷歌搜索,我找到的只是File Mode=Read Only,但它不起作用(不支持文件模式关键字)。该引用看起来特定于SQL CE。

SQLite Read Only=True也没有运气。

-edit -

我的连接字符串如下。在配置表时我不知道。我不知道如何设置用户/权限。

rdconn = new SqlConnection(@"(wrong)Read Only=True;Server=.\SQLExpress;AttachDbFilename=test2.mdf;Database=dbo;Integrated Security=SSPI;User Instance=True;");

5 个答案:

答案 0 :(得分:7)

只需将当前用户的权限设置为 SELECT

这就是你想要的吗?

单击Security-> Users后,单击SQL Server Management Studio中的当前数据库。找到您的用户,右键单击他 - >属性 - >安全对象。只需标记SELECT,取消所有其他标记。

以下是管理权限的链接

http://www.databasejournal.com/features/mssql/article.php/2246271/Managing-Users-Permissions-on-SQL-Server.htm

http://www.mssqlcity.com/Articles/Adm/manage_users_permissions.htm

刚刚找到了一个用于管理权限的免费工具。它也很有用。检查链接

http://www.idera.com/Products/Free-Tools/SQL-permissions/

<强>更新

如果您希望数据库对任何用户都是只读的:

ALTER DATABASE database-name SET READ_ONLY

或阅读此处以获取更多信息

http://www.sqlservercurry.com/2009/03/set-database-to-read-only-mode-using.html

http://www.blackwasp.co.uk/SQLReadOnly.aspx

答案 1 :(得分:2)

更改SQL Server中已使用登录的安全设置 例如,只有db_datareader。

答案 2 :(得分:0)

如果要以只读模式访问数据库,可以为数据库创建用户,并可以启用“READ”权限并禁用“WRITE”权限

你可以在sqlserver中看到数据库下的用户选择那个,如果你想要你可以创建新用户,你可以在属性中设置权限

另请参阅

http://www.zimbio.com/SQL/articles/-jf4iDK7qWQ/Set+database+read+only+mode+using+SQL+Server

答案 3 :(得分:0)

这很简单。

如果调用了db-user MyApplicationWebServices_EN

创建一个名为MyApplicationWebServicesReadOnly_EN的新登录名,默认语言为英语(或任何您需要的),他只是服务器角色“public”的成员(默认)。

在您希望用户有权访问的数据库中,创建一个名为MyApplicationWebServicesReadOnly_EN的新用户,并将其映射到登录MyApplicationWebServicesReadOnly_EN。

右键单击数据库中的用户,然后选择属性 - &gt;一般 在“数据库角色中的成员身份”的选择框列表中,仅选择db_datareader(确保未选中所有其他选项)。

现在在您的连接字符串中使用MyApplicationWebServicesReadOnly_EN作为“用户ID”,并且您拥有只读模式..

当然,如果您的整个数据库应该是只读的,那么

ALTER DATABASE your_database_name SET READ_ONLY
正如hgulyan所说,

会做得很好。

答案 4 :(得分:0)

在某些情况下,例如在 Azure 中的高可用性实例中,您可能拥有数据库的只读复制副本。在这种情况下,您添加

;applicationintent=readonly

连接字符串,让该用户访问只读副本。

More at Microsoft...