Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将C#程序的权限限制为SQLServer数据库上的只读权限?_C#_Sql Server - Fatal编程技术网

如何将C#程序的权限限制为SQLServer数据库上的只读权限?

如何将C#程序的权限限制为SQLServer数据库上的只读权限?,c#,sql-server,C#,Sql Server,我已经编写了一些C#连接到实时生产数据库。我想让我的应用程序只读访问数据库,但不确定如何实现这一点 有没有什么简单的方法可以通过修改连接字符串来实现这一点 我的理解是,该应用程序将使用运行该应用程序的人员的凭据登录,因此基于该事实,该应用程序可能具有或可能不具有对数据库的写访问权限。我可以静态地限制应用程序的权限吗?这样,如果有人更改程序以在以后做一些破坏性的事情,任何操作都将失败 很抱歉这个问题可能很琐碎,但这是我第一次涉足微软编程领域 谢谢 Gav您始终可以授予用户与数据库的连接,仅授予该数

我已经编写了一些C#连接到实时生产数据库。我想让我的应用程序只读访问数据库,但不确定如何实现这一点

有没有什么简单的方法可以通过修改连接字符串来实现这一点

我的理解是,该应用程序将使用运行该应用程序的人员的凭据登录,因此基于该事实,该应用程序可能具有或可能不具有对数据库的写访问权限。我可以静态地限制应用程序的权限吗?这样,如果有人更改程序以在以后做一些破坏性的事情,任何操作都将失败

很抱歉这个问题可能很琐碎,但这是我第一次涉足微软编程领域

谢谢


Gav

您始终可以授予用户与数据库的连接,仅授予该数据库上的“db_datareader”角色

db_datareader为用户提供对所有表的SELECT权限,但仅此而已


您始终可以授予用户与数据库的连接,仅授予该数据库上的“db_datareader”角色

db_datareader为用户提供对所有表的SELECT权限,但仅此而已


让它以仅具有只读权限的用户身份登录到数据库服务器。不要尝试向数据库写入任何内容。

让它以只有只读权限的用户身份登录到数据库服务器。这就意味着不要尝试向数据库写入任何内容。

基本上有两种主要类型的SQL Server身份验证:

  • 集成Windows身份验证和
  • 混合身份验证模式(SQL Server身份验证)
  • 听起来你在用前者。如果使用后者,则可以在SQL Server中创建特定的用户帐户,为其提供用户名和密码,然后授予对希望其能够读取的表的访问权限。您可以在帐户级别控制它对数据库中任何对象的访问权限


    有关详细信息,请参阅。

    基本上有两种主要的SQL Server身份验证类型:

  • 集成Windows身份验证和
  • 混合身份验证模式(SQL Server身份验证)
  • 听起来你在用前者。如果使用后者,则可以在SQL Server中创建特定的用户帐户,为其提供用户名和密码,然后授予对希望其能够读取的表的访问权限。您可以在帐户级别控制它对数据库中任何对象的访问权限


    有关详细信息,请参阅。

    您不能通过更改连接字符串来更改帐户的权限。数据库中有一个决定权限的用户帐户

    除非您希望不同的人拥有不同的权限,否则您应该为应用程序设置一个帐户,并在连接字符串中使用


    对于数据库中的任何帐户,您都可以指定它可以访问哪些数据库,以及它可以对这些数据库执行哪些操作。权限可以指定到对象和操作的级别,例如,您可以指定它只能对某些表进行选择。

    您不能通过更改连接字符串来更改帐户的权限。数据库中有一个决定权限的用户帐户

    除非您希望不同的人拥有不同的权限,否则您应该为应用程序设置一个帐户,并在连接字符串中使用


    对于数据库中的任何帐户,您都可以指定它可以访问哪些数据库,以及它可以对这些数据库执行哪些操作。权限可以指定到对象和操作的级别,因此您可以例如指定它只能在某些表上进行选择;通常并不是每个登录的用户都能访问数据库,更不用说拥有读取权限了。因此,在您的情况下,您可以为您的应用程序创建一个具有读取权限的数据库用户;并在连接字符串中使用它。

    只是一个想法;通常并不是每个登录的用户都能访问数据库,更不用说拥有读取权限了。因此,在您的情况下,您可以为您的应用程序创建一个具有读取权限的数据库用户;并在连接字符串中使用它