Database-SQL-Server-02-SQL-Server-Configure
角色
SA账号(超级管理员)
权限
拥有所有权限
使用16 位包含数字、大小写字母随机密码
保存于公有或私有部署BitWarden中
脚本
需替换<NewPassword> 为新生成的随机密码
-- 修改sa账号密码
ALTER LOGIN [sa] WITH PASSWORD=N'<NewPassword>'
程序(管理员)
只有一个
权限
只有以下权限
- 创建数据库(Database )
- 读(Read )数据(Record )
- 写(Write )数据(Record ),包含新增、修改和删除数据
- 修改(DDL )表结构(Table ),包含新增修改删除字段及修改字段类型
脚本
以下脚本需替换<LoginUserName> <UserName> <DatabaseName> 为对应值
其中<LoginUserName> <UserName> 可以相同
USE [master]
GO
-- 创建登录账号,此时用户只能登录,不能访问其它数据库
CREATE LOGIN <LoginUserName> WITH PASSWORD=N'<Password>', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
GO
-- 赋予登录账号数据库创建权限
ALTER SERVER ROLE [dbcreator] ADD MEMBER <LoginUserName>;
GO
USE <DatabaseName>
GO
-- 在该数据库创建用户,此时用户能访问该数据库,不能访问表
CREATE USER <UserName> FOR LOGIN <LoginUserName>
GO
-- 给该用户赋予读权限,此时用户能读该数据库的表数据,不能新增修改删除
ALTER ROLE [db_datareader] ADD MEMBER <UserName>
GO
-- 给该用户赋予写权限,此时用户能对该数据库的表数据进行新增修改删除,不能删除表,修改表结构
ALTER ROLE [db_datawriter] ADD MEMBER <UserName>
GO
-- 给该用户赋予表结构操作权限,此时用户能删除表,不能删除数据库
ALTER ROLE [db_ddladmin] ADD MEMBER <UserName>
GO
开发运维
每个人一个账号,不能共用
权限
- 读(Read )数据(Record )
- 写(Write )数据(Record ),包含新增、修改和删除数据
脚本
以下脚本需替换<LoginUserName> <UserName> <DatabaseName> 为对应值
其中<LoginUserName> <UserName> 可以相同
USE [master]
GO
-- 创建登录账号,此时用户只能登录,不能访问其它数据库
CREATE LOGIN <LoginUserName> WITH PASSWORD=N'<Password>', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
GO
USE <DatabaseName>
GO
-- 在该数据库创建用户,此时用户能访问该数据库,不能访问表
CREATE USER <UserName> FOR LOGIN <LoginUserName>
GO
-- 给该用户赋予读权限,此时用户能读该数据库的表数据,不能新增修改删除
ALTER ROLE [db_datareader] ADD MEMBER <UserName>
GO
-- 给该用户赋予写权限,此时用户能对该数据库的表数据进行新增修改删除,不能删除表,修改表结构
ALTER ROLE [db_datawriter] ADD MEMBER <UserName>
GO