SQL Server SQL脚本设置权限
封面图
•
2025-10-05
•
SQL Server
0
0
0
0
在 SQL Server 中,设置权限通常是通过 `GRANT`、`REVOKE` 和 `DENY` 语句来实现的。下面是一些常见的 SQL 脚本示例,用于授予或撤销用户对数据库对象(如表、视图、存储过程等)的权限。 --- ## ✅ 基本权限设置脚本 ### 1. **创建登录名(Login)** ```sql -- 创建一个 Windows 登录名 CREATE LOGIN [DOMAIN\Username] FROM WINDOWS; -- 创建一个 SQL Server 登录名 CREATE LOGIN [MyUser] WITH PASSWORD = 'StrongPassword123!'; ``` --- ### 2. **创建数据库用户(User)** ```sql USE [YourDatabaseName]; GO -- 将登录名映射到数据库用户 CREATE USER [MyUser] FOR LOGIN [MyUser]; ``` --- ### 3. **授予用户对表的权限** ```sql -- 授予 SELECT 权限 GRANT SELECT ON [dbo].[YourTableName] TO [MyUser]; -- 授予 INSERT 权限 GRANT INSERT ON [dbo].[YourTableName] TO [MyUser]; -- 授予 UPDATE 权限 GRANT UPDATE ON [dbo].[YourTableName] TO [MyUser]; -- 授予 DELETE 权限 GRANT DELETE ON [dbo].[YourTableName] TO [MyUser]; -- 授予所有权限(SELECT, INSERT, UPDATE, DELETE) GRANT ALL PRIVILEGES ON [dbo].[YourTableName] TO [MyUser]; ``` --- ### 4. **授予用户对存储过程的执行权限** ```sql GRANT EXECUTE ON [dbo].[YourStoredProcedure] TO [MyUser]; ``` --- ### 5. **授予用户对整个数据库的权限** ```sql -- 授予用户对数据库的访问权限 GRANT CONNECT TO [MyUser]; -- 授予用户对数据库中所有表的 SELECT 权限 GRANT SELECT ON SCHEMA::dbo TO [MyUser]; ``` --- ### 6. **撤销权限** ```sql -- 撤销 SELECT 权限 REVOKE SELECT ON [dbo].[YourTableName] FROM [MyUser]; -- 撤销所有权限 REVOKE ALL PRIVILEGES ON [dbo].[YourTableName] FROM [MyUser]; ``` --- ### 7. **拒绝权限(优先级高于 GRANT)** ```sql -- 拒绝 SELECT 权限 DENY SELECT ON [dbo].[YourTableName] TO [MyUser]; ``` --- ## 🧠 注意事项: - 确保使用 `USE [YourDatabaseName];` 切换到目标数据库。 - 如果是跨数据库访问,可能需要使用 `OPENROWSET` 或 `sp_addlinkedserver`。 - 使用 `sys.database_permissions` 和 `sys.database_principals` 可以查看当前权限: ```sql SELECT * FROM sys.database_permissions; SELECT * FROM sys.database_principals; ``` --- ## 📌 示例:完整流程 ```sql -- 创建登录名 CREATE LOGIN [MyUser] WITH PASSWORD = 'P@ssw0rd'; -- 使用目标数据库 USE [MyDatabase]; GO -- 创建数据库用户 CREATE USER [MyUser] FOR LOGIN [MyUser]; -- 授予对某个表的 SELECT 权限 GRANT SELECT ON [dbo].[Employees] TO [MyUser]; ``` --- 如果你有特定的权限需求(比如只允许读取某些字段、限制访问时间等),也可以告诉我,我可以帮你定制更复杂的权限脚本。
上一篇:
SQL Server SQL脚本创建存储过程、函数
下一篇:
SQL Server SQL脚本用户管理
标题录入,一次不能超过6条
返回顶部
留言
留言
评论