📜  MS SQL Server-分配权限(1)

📅  最后修改于: 2023-12-03 15:32:59.305000             🧑  作者: Mango

MS SQL Server-分配权限

1. 什么是权限?

在MS SQL Server中,权限是指用户或用户组对数据库对象进行操作的权利,比如SELECT、UPDATE等操作。有不同类型的权限,如登录权限、数据库级别的权限和对象级别的权限。

2. 如何分配权限?

2.1 登录权限

要创建新的登录账户并授予权限,可以使用以下脚本:

CREATE LOGIN [testuser] WITH PASSWORD = 'mypassword'

可以授予登录权限,例如:

USE [master];
GO
CREATE LOGIN [myLogin] WITH PASSWORD=N'myPassword', 
   DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;
GO
GRANT CONNECT SQL TO [myLogin];
GO

2.2 数据库级别权限

以下示例演示如何创建新用户和授予对数据库读取、写入和执行的权限:

步骤1:为用户创建登录名称和密码

USE [master]
GO
CREATE LOGIN [newuser] WITH PASSWORD=N'mypassword', 
   DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO

步骤2:为用户创建数据库用户/用户

USE [mydatabase]
GO
CREATE USER [newuser] FOR LOGIN [newuser]
GO

步骤3:授予用户对特定数据库的权限

USE [mydatabase]
GO
GRANT SELECT, INSERT, EXECUTE TO [newuser]
GO

2.3 对象级别权限

以下示例演示如何授予对表、视图或存储过程等对象的不同权限:

授予SELECT权限:

USE [mydatabase]
GO
GRANT SELECT ON [dbo].[mytable] TO [newuser]
GO

授予INSERT、UPDATE或DELETE权限:

USE [mydatabase]
GO
GRANT INSERT, UPDATE, DELETE ON [dbo].[mytable] TO [newuser]
GO

授予EXECUTE权限:

USE [mydatabase]
GO
GRANT EXECUTE ON [dbo].[myprocedure] TO [newuser]
GO

以上示例演示了如何分配权限,以便用户可以对数据库和其中的对象进行访问和操作。这些脚本可以方便地在SQL Server Management Studio中执行,也可以放入存储过程中进行批量分配。