情景
我的服务器有很多库,我新建一个用户【MyTest】(密码也是MyTest),这个用户只拥有【Test】库的控制权。
一、创建账号
使【MyTest】用户可以连上服务器
sql
-- 创建SQL Server身份验证的登录名
CREATE LOGIN MyTest
WITH PASSWORD = 'MyTest',
CHECK_POLICY = OFF, -- 根据你的安全策略调整
DEFAULT_DATABASE = Test; -- 设置默认数据库为Test
二、创建用户并授权
使【MyTest】用户可以连上【Test】库,并且拥有增删改权限
sql
-- 切换到Test数据库
USE Test;
-- 在Test数据库中创建用户并映射到登录名
CREATE USER MyTest FOR LOGIN MyTest;
sql
-- 授予用户在Test数据库中的db_owner权限
-- 这会给予完全控制权(包括查看、修改、删除等所有权限)
ALTER ROLE db_owner ADD MEMBER MyTest;
结果:【MyTest】用户只可以连接【Test】库,并拥有该库的控制权限
三、权限限制
1.权限拒绝
sql
-- 切换数据库
USE Test;
-- 拒绝【MyTest】用户 对 Student_2024 表的 INSERT、UPDATE、DELETE 权限
DENY INSERT, UPDATE, DELETE ON dbo.Student_2024 TO MyTest;
GO
2.权限允许
sql
-- 切换到目标数据库
USE Test;
-- 授予【MyTest】用户 对 Student_2024 表的 INSERT、UPDATE、DELETE 权限
GRANT INSERT, UPDATE, DELETE ON dbo.Student_2024 TO MyTest;