Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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
Sql server 不同架构上的SQL Server用户权限_Sql Server_Azure Sql Database - Fatal编程技术网

Sql server 不同架构上的SQL Server用户权限

Sql server 不同架构上的SQL Server用户权限,sql-server,azure-sql-database,Sql Server,Azure Sql Database,我有一个SQLAzure数据库,DBO模式下已经有数千个对象 我想创建一个具有特定访问要求的新用户 要求如下 用户只能看到dbo模式下的一些对象 用户可以进行更新/选择/更改/执行..等。任何类型的修改,包括从允许其查看的对象中添加或删除列。 用户可以在dbo模式下添加新对象。 用户不应看到SSMS浏览器中dbo架构下不允许他们看到的对象。 你能帮我用上面的规范设置用户吗?正如Dan Guzman所说,如果没有3,这是可能的。因为创建表只是数据库级别的权限,不能在架构级别分配。 用户可以定义为架

我有一个SQLAzure数据库,DBO模式下已经有数千个对象

我想创建一个具有特定访问要求的新用户

要求如下

用户只能看到dbo模式下的一些对象 用户可以进行更新/选择/更改/执行..等。任何类型的修改,包括从允许其查看的对象中添加或删除列。 用户可以在dbo模式下添加新对象。 用户不应看到SSMS浏览器中dbo架构下不允许他们看到的对象。
你能帮我用上面的规范设置用户吗?

正如Dan Guzman所说,如果没有3,这是可能的。因为创建表只是数据库级别的权限,不能在架构级别分配。 用户可以定义为架构所有者。如果用户在数据库级别具有创建表权限,并且是架构所有者,则所有表都将在其拥有的架构中创建

在Azure SQL中创建登录名和用户: 我们可以使用下面的查询来生成grant-SQL脚本。选择要授予用户的表。 从information_SCHEMA.tables中选择'GRANT SELECT,INSERT,DELETE,UPDATE ON'+TABLE_SCHEMA+'.+TABLE_NAME+'TO user1'
由于其他原因,我不能使用不同的模式。创建新对象需要架构上的ALTER权限,这赋予了查看架构中所有对象的能力。Hi@arif coskun如果需要更多信息,请告诉我。我不希望用户可以使用dbo架构查看所有对象。这就是我只能将特定对象作为您共享的代码授予的对象。但是我希望用户可以使用dbo对象创建新表。这是不可能与您的代码。我已经尝试了以下代码。我想让用户完全访问dbo,并拒绝我不允许他修改的对象。这是可行的,但是用户可以看到对象,即使没有选择或修改它们的权限。我不希望用户看到我拒绝创建用户受限访问权限用户的对象,密码为“***”,将SCHEMA::dbo上的选择、插入、删除、更改、执行授予受限访问权限用户;如果用户可以使用dbo对象创建新表,请将[dbo].[table]上的SELECT、INSERT、UPDATE、DELETE转到[limited_access_user]。他将是架构所有者,因此我们无法授予他创建权限。您的意思是我们无法为他创建拒绝权限以查看对象吗?老实说,我不理解您提供的解决方案。
use master;
CREATE login user1 with password='SafePassword'

use userDb;
CREATE USER user1 FOR LOGIN user1;  

GO