Loading

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

posted @ 2022-12-11 15:51  知科行技  阅读(31)  评论(0编辑  收藏  举报