SQL server 如何让一个登录用户只有访问权限

SQL server 如何设置一个用户名只有访问权限没有修改权限,设置完成后如何验证一下,求详细说明 谢谢

打开一个新的查询窗口,并执行以下 SQL 命令来创建一个新用户并为其分配只读权限:

CREATE LOGIN YourUsername WITH PASSWORD = 'YourPassword';
CREATE USER YourUsername FOR LOGIN YourUsername;
GRANT CONNECT SQL TO YourUsername;
GRANT SELECT ON YourDatabaseName.YourSchemaName.YourTableName TO YourUsername;

YourUsername: 要创建的用户名。
YourPassword: 用户的密码。
YourDatabaseName: 数据库名称。
YourSchemaName: 架构名称(通常是 "dbo")。
YourTableName: 表名称。

验证只读权限:
使用刚刚创建的用户名和密码登录到 SQL Server Management Studio。

在 "对象资源管理器" 中,展开数据库、架构和表,找到您想要验证权限的表。

右键单击该表,然后选择 "新建查询"。

在查询窗口中,尝试执行 SELECT 查询,例如:

SELECT * FROM YourTableName;

如果一切设置正确,您应该能够执行查询并查看数据。如果您尝试执行 UPDATE、INSERT 或 DELETE 查询,您将会收到权限不足的错误。

参考如下
https://www.bkqs.com.cn/content/znk67057p.html
验证的话,用新增的用户登陆系统,然后尝试修改表数据,会提示不允许修改的

【以下回答由 GPT 生成】

解决方案

要设置一个登录用户只拥有访问权限而无修改权限,可以按照以下步骤进行:

步骤 1: 创建一个新的登录用户

可以使用以下示例代码创建一个新的登录用户,并设置密码:

CREATE LOGIN [your_username] WITH PASSWORD = 'your_password';

请将your_username替换为你想要创建的用户名,将your_password替换为你想要设置的密码。

步骤 2: 创建一个新的数据库用户

使用以下示例代码将新的登录用户转换为数据库用户,并将其与特定数据库相关联:

USE [your_database];
CREATE USER [your_username] FOR LOGIN [your_username];

请将your_database替换为你想要关联的数据库名称。

步骤 3: 授予只读角色权限

使用以下示例代码将只读角色权限授予新的数据库用户:

USE [your_database];
EXEC sp_addrolemember 'db_datareader', [your_username];

请将your_database替换为你想要授予权限的数据库名称。

现在,你的特定用户名就具有只读权限而无修改权限。

验证用户权限

你可以使用以下步骤验证新用户的权限:

  1. 使用新的用户名和密码登录SQL Server。
  2. 使用以下代码检查用户的权限:
EXEC sp_helpuser;

该代码将返回用户的详细信息,包括其权限和角色。

如果你在验证过程中发现用户有修改数据的权限,可能是由于他们属于其他具有修改权限的角色。你可以使用以下代码检查用户所属的角色:

EXEC sp_helprolemember;

这将返回用户所属的角色列表。

如果你发现用户属于具有修改权限的角色,可以使用以下代码将其从该角色中删除:

EXEC sp_droprolemember 'db_datawriter', [your_username];

请将db_datawriter替换为具有修改权限的角色名称,将your_username替换为要移除的用户名。


这是解决你的问题的步骤说明。希望对你有所帮助!如果有任何疑问,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^