sqlserver创建用户角色与授权

sqlserver 专栏收录该内容
23 篇文章 0 订阅

sqlserver创建用户角色与授权

需求描述:

web应用开发sqlserver作为数据存储,默认使用sa进行业务操作,如果发生用户密码泄露,危害性极大。

解决办法:

根据各业务库新建用户,专门用于特定数据库;

创建用户与授权脚本

--创建登陆帐户(create login)
create login new_user with password='123456', default_database=master
go 
--为登陆账户创建数据库用户(create user)
create user new_user for login new_user with default_schema=dbo
go 
--通过加入数据库角色,赋予数据库用户“db_owner”权限
exec sp_addrolemember 'db_owner', 'new_user'
go 
-- 赋予查看系统进程权限(可选,用于查看sys.dm_*相关视图)
GRANT  VIEW SERVER STATE TO new_user;
go

常用命令

--禁用登陆帐户
alter login new_user disable
--启用登陆帐户
alter login new_user enable

--登陆帐户改名
alter login new_user with name=new_user_z3

--登陆帐户改密码: 
alter login new_user with password='654321'

--数据库用户改名: 
alter user new_user with name=new_user_z3

--更改数据库用户 defult_schema: 
alter user new_user with default_schema=product

--删除数据库用户: 
drop user new_user

--删除 SQL Server登陆帐户: 
drop login new_user

-- 赋予角色 roleA 表 tableA 的写权限
GRANT INSERT ON TableA TO RoleA
GO
-- 用户UserA将有TableA的INSERT权限
EXEC sp_addrolemember RoleA, 'UserA' 
GO

-- 用户UserA将没有TableA的INSERT权限,收回权限
REVOKE INSERT ON TableA FROM RoleA 
GO

--重新给RoleA以TableA的INSERT权限
GRANT INSERT ON TableA TO RoleA 
GO 

-- 虽然用户UserA所在RoleA有TableA的INSERT权限,但UserA本身被DENY了,
-- 所以用户UserA将没有TableA的INSERT权限。
DENY INSERT ON TableA TO UserA 
  • 7
    点赞
  • 0
    评论
  • 22
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值