如何在SQL-Server中创建只能访问一个表的用户,并且只能插入行

Kiz*_*hix 10 sql-server sql-server-2008

我有一个SQL服务器数据库,很快就会有两个数据库,我用它来建立一个网站.

我已经拥有一个只读数据库1的用户帐户来搜索我们的产品库存.我只想为数据库2创建一个单独的帐户,仅用于表1,它只允许插入记录(不更新或删除或其他任何内容).我试图尽可能多地使用访问限制(在代码之上尝试并阻止sql注入,如果有人以某种方式获得某些东西,我不希望数据库本身允许它).

所以底线问题,如何在SQL服务器中创建一个用户,该用户只能限制访问y数据库中的x表,并且只能读取/插入记录,而不是其他内容?

SQL*_*ace 28

创建用户,不要给任何角色,如db_datareader或db_datawriter

然后 GRANT INSERT ON YourTable TO SomeUser

如果你想插入和选择

GRANT INSERT, SELECT ON YourTable TO SomeUser

另请参见此处的完整示例:仅为表进行新登录的插入权限


Muh*_*ani 5

(1)仅允许用户访问一个表

GRANT SELECT ON [schemaName].[tableName] to [username]
Go 
Run Code Online (Sandbox Code Playgroud)

(2)授予INSERT许可.

GRANT INSERT ON [schemaName].[tableName] TO [username]
Run Code Online (Sandbox Code Playgroud)