SQL 服务器添加用户创建权限 table

SQL Server adding access for user to create table

我拥有一个新数据库,并且设置了多个模式,并且用户具有不同的组访问权限,以确保他们只能编辑他们需要访问的模式。最近,我向用户授予了模式的更改和创建访问权限,但用户仍然无法插入 table。我通过 SSMS 进行用户维护。我究竟做错了什么?与在 SSMS 中使用 GUI 相比,执行 SQL 脚本会更好吗?任何帮助将不胜感激!!

我最初用来授予访问权限的步骤如下,我在安全选项卡上的架构中拥有数据库角色权限,然后我选中了更改、控制、创建、删除、执行、插入旁边的框, Select,并更新。然后我将用户添加到这个数据库角色。用户可以 select 但不能 insert/create a table.

用户尝试的SQL脚本如下:

CREATE TABLE Database.Schema.test_table (
oid numeric PRIMARY KEY
,columnEX numeric NOT NULL
,columnEX2 numeric
);

收到的错误信息如下:

在数据库 'database' 中创建 TABLE 权限被拒绝。

要创建 table 用户需要 在数据库中创建 TABLE 权限并在目标模式上更改权限。

并且 strong 安全最佳实践是让用户(或组)成为目标模式的所有者,而不是授予他们对另一个人拥有的模式的 ALTER 或 CONTROL用户。如果您授予用户更改或控制特权用户(如 dbo)拥有的模式的权利,那么他们可以使用所有权链访问该特权用户拥有的任何模式中的任何对象。