Microsoft SQL 服务器上的 create\delete 表需要什么权限? dbowner还好吗?
What privileges are needed to create\delete tables on a Microsoft SQL Server? Is dbowner ok?
我不太喜欢 SQL 服务器 并且我有以下疑问:我必须要求创建一个可以在某些数据库上工作的用户。此用户必须 create\delete table、insert\delete 记录在这些 table 中。
必须为此用户在这些数据库上设置什么类型的权限? dbowner 可以执行这些操作吗? (特别重要的是这个用户可以 create\delete tables)或者我错过了什么?
Members of the db_owner fixed database role can perform all
configuration and maintenance activities on the database, and can also
drop the database in SQL Server.
您确定这是您要授予该用户的权利吗?似乎一组更受限制的权限更适合他们。
例如,角色 db_ddladmin
、db_datareader
和 db_datawriter
可能更合适:
db_ddladmin
:
Members of the db_ddladmin fixed database role can run any Data
Definition Language (DDL) command in a database.
db_datareader
:
Members of the db_datareader fixed database role can read all data
from all user tables.
db_datawriter
:
Members of the db_datawriter fixed database role can add, delete, or
change data in all user tables.
或者,您可以授予用户帐户针对该数据库及其用户对象的特定权限,以限制他们对您想要的功能子集的访问。
首先要了解使用 roles 的好处:
- 角色是分层安全模型的一部分:
- 登录安全—连接服务器
- 数据库安全——获得对数据库的访问权限
- 数据库对象——获得对单个数据库对象的访问权和
数据**
预定义的数据库角色
您可能需要创建自己的角色,但您可以访问多个预定义的数据库角色:
- db_owner:成员拥有完全访问权限。
- db_accessadmin:成员可以管理Windows组和SQL服务器
登录。
- db_datareader: 会员可以阅读所有数据。
- db_datawriter: 成员可以在表中添加、删除或修改数据。
- db_ddladmin:允许用户创建、删除或修改数据库中的任何对象,无论谁拥有。
- db_securityadmin:成员可以修改角色成员资格和管理
权限。
- db_bckupoperator:会员可以备份数据库。
- db_denydatareader: 会员无法查看数据库中的数据。
- db_denydatawriter:成员不能更改或删除表中的数据或
观看次数。
固定角色:
固定的服务器角色在服务器范围内应用,并且有几个预定义的服务器角色:
- 系统管理员:任何成员都可以在服务器上执行任何操作。
- ServerAdmin:任何成员都可以在服务器上设置配置选项。
- SetupAdmin:任何成员都可以管理链接服务器和 SQL 服务器
启动选项和任务。
- 安全管理员:任何成员都可以管理服务器安全。
- ProcessAdmin:任何成员都可以在 SQL 服务器上终止进程 运行ning。
- DbCreator:任何成员都可以创建、更改、删除和恢复数据库。
- DiskAdmin:任何成员都可以管理 SQL 服务器磁盘文件。
- BulkAdmin:任何成员都可以运行批量插入命令。
我不太喜欢 SQL 服务器 并且我有以下疑问:我必须要求创建一个可以在某些数据库上工作的用户。此用户必须 create\delete table、insert\delete 记录在这些 table 中。
必须为此用户在这些数据库上设置什么类型的权限? dbowner 可以执行这些操作吗? (特别重要的是这个用户可以 create\delete tables)或者我错过了什么?
Members of the db_owner fixed database role can perform all configuration and maintenance activities on the database, and can also drop the database in SQL Server.
您确定这是您要授予该用户的权利吗?似乎一组更受限制的权限更适合他们。
例如,角色 db_ddladmin
、db_datareader
和 db_datawriter
可能更合适:
db_ddladmin
:
Members of the db_ddladmin fixed database role can run any Data Definition Language (DDL) command in a database.
db_datareader
:
Members of the db_datareader fixed database role can read all data from all user tables.
db_datawriter
:
Members of the db_datawriter fixed database role can add, delete, or change data in all user tables.
或者,您可以授予用户帐户针对该数据库及其用户对象的特定权限,以限制他们对您想要的功能子集的访问。
首先要了解使用 roles 的好处:
- 角色是分层安全模型的一部分:
- 登录安全—连接服务器
- 数据库安全——获得对数据库的访问权限
- 数据库对象——获得对单个数据库对象的访问权和 数据**
预定义的数据库角色 您可能需要创建自己的角色,但您可以访问多个预定义的数据库角色:
- db_owner:成员拥有完全访问权限。
- db_accessadmin:成员可以管理Windows组和SQL服务器 登录。
- db_datareader: 会员可以阅读所有数据。
- db_datawriter: 成员可以在表中添加、删除或修改数据。
- db_ddladmin:允许用户创建、删除或修改数据库中的任何对象,无论谁拥有。
- db_securityadmin:成员可以修改角色成员资格和管理 权限。
- db_bckupoperator:会员可以备份数据库。
- db_denydatareader: 会员无法查看数据库中的数据。
- db_denydatawriter:成员不能更改或删除表中的数据或 观看次数。
固定角色: 固定的服务器角色在服务器范围内应用,并且有几个预定义的服务器角色:
- 系统管理员:任何成员都可以在服务器上执行任何操作。
- ServerAdmin:任何成员都可以在服务器上设置配置选项。
- SetupAdmin:任何成员都可以管理链接服务器和 SQL 服务器 启动选项和任务。
- 安全管理员:任何成员都可以管理服务器安全。
- ProcessAdmin:任何成员都可以在 SQL 服务器上终止进程 运行ning。
- DbCreator:任何成员都可以创建、更改、删除和恢复数据库。
- DiskAdmin:任何成员都可以管理 SQL 服务器磁盘文件。
- BulkAdmin:任何成员都可以运行批量插入命令。