SQL Server SQL脚本用户管理
封面图
•
2025-10-05
•
SQL Server
0
0
0
0
在 SQL Server 中,管理用户(User)通常涉及到以下几个方面: 1. **创建用户** 2. **删除用户** 3. **修改用户权限** 4. **查看用户信息** 以下是一些常见的 SQL Server SQL 脚本示例,用于管理用户。 --- ## 一、创建登录(Login) 在 SQL Server 中,**登录(Login)** 是服务器级别的实体,而 **用户(User)** 是数据库级别的实体。 ```sql -- 创建 SQL 登录(用户名:MyUser,密码:MyPassword) CREATE LOGIN MyUser WITH PASSWORD = 'MyPassword'; -- 创建 Windows 身份验证登录 CREATE LOGIN [DOMAIN\UserName] FROM WINDOWS; ``` --- ## 二、创建数据库用户 创建完登录后,需要将该登录映射到特定数据库中作为用户。 ```sql USE YourDatabaseName; -- 将登录 MyUser 映射为数据库用户 MyUser CREATE USER MyUser FOR LOGIN MyUser; -- 如果是 Windows 用户 CREATE USER [DOMAIN\UserName] FOR LOGIN [DOMAIN\UserName]; ``` --- ## 三、分配权限(授权) 可以给用户授予数据库角色或直接授予权限。 ### 1. 授予数据库角色(如 `db_datareader`、`db_datawriter`) ```sql ALTER ROLE db_datareader ADD MEMBER MyUser; ALTER ROLE db_datawriter ADD MEMBER MyUser; ``` ### 2. 直接授予权限 ```sql GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo TO MyUser; ``` ### 3. 授予执行存储过程的权限 ```sql GRANT EXECUTE ON dbo.MyStoredProcedure TO MyUser; ``` --- ## 四、查看用户信息 ### 查看当前数据库中的用户 ```sql SELECT * FROM sys.database_principals; ``` ### 查看登录信息(服务器级别) ```sql SELECT * FROM sys.server_principals; ``` ### 查看用户所属的角色 ```sql SELECT dp.name AS UserName, dp.type_desc AS UserType, dr.name AS RoleName FROM sys.database_role_members drm JOIN sys.database_principals dp ON drm.member_principal_id = dp.principal_id JOIN sys.database_principals dr ON drm.role_principal_id = dr.principal_id; ``` --- ## 五、删除用户 ### 删除数据库用户 ```sql DROP USER MyUser; ``` ### 删除登录(注意:必须先删除所有关联的用户) ```sql DROP LOGIN MyUser; ``` --- ## 六、常见问题与注意事项 | 问题 | 解决方案 | |------|----------| | 用户无法访问数据库 | 确保已创建数据库用户并映射了登录 | | 权限不足 | 检查用户是否被授予了正确的角色或权限 | | 登录无法删除 | 需要先删除所有关联的数据库用户 | --- ## 七、示例:创建用户并赋权 ```sql -- 创建登录 CREATE LOGIN MyUser WITH PASSWORD = 'P@ssw0rd'; -- 使用目标数据库 USE MyDatabase; -- 创建数据库用户 CREATE USER MyUser FOR LOGIN MyUser; -- 授予读取权限 GRANT SELECT ON SCHEMA::dbo TO MyUser; ``` --- 如果你有具体的场景(比如:使用 Windows 身份验证、创建只读用户、限制访问等),我可以提供更详细的脚本。欢迎继续提问!
上一篇:
SQL Server SQL脚本设置权限
标题录入,一次不能超过6条
返回顶部
留言
留言
评论