XuGang

记录一个程序员的成长

 

SQL Server 基本权限管理[备忘]

 

在SQL Server 中,使用系统的存储过程管理登录名,主要包括:

sp_addlogin       sp_droplogin       sp_helplogins

sp_grantlogin     sp_revokelogin    sp_denylogin

需要注意的是:这些系统的存储过程必须master 数据库中使用。

 

以下代码实现简单的三层权限:

复制代码
use S100801A
go

--======================= 数据库登录 =======================
--
添加登录用户(sp_addlogin '用户名','密码','默认数据库名')
exec sp_addlogin N'xg',N'xg123'
-- 或者
exec sp_addlogin N'xg',N'xg123',N'master'

--移除登录用户
exec sp_droplogin N'xg'

--======================= 数据库访问 =======================

--添加数据库访问用户(sp_grantdbaccess '用户名','数据库名')
use S100801A
go
exec sp_grantDBaccess N'xg',N'db_xg'

--移除数据库访问用户 
exec sp_revokeDBaccess N'db_xg'

--======================= 数据库权限 =======================

--授予对数据库的所有权限(sp_addRoleMember '角色','用户')
exec sp_addRoleMember N'db_owner',N'db_xg'
--只能访问自己的数据库,及guest用户的公共表      

--移除对数据库的所有权限(sp_dropRoleMember '角色','用户')
exec sp_dropRoleMember N'db_owner',N'db_xg'
复制代码


/*==========================================================================
重要事项:
后续版本的 Microsoft SQL Server 中,将删除使用‘系统存储过程’实现访问权限的相关功能。
为了避免在新的开发工作中使用该功能,应着手修改实现该功能的方式。
==========================================================================*/

 

改用实现方式如下:
复制代码
--以下示例首先创建名为‘xg’且具有密码的服务器登录名,
--
然后在数据库‘S100801A’中创建用户‘abo_xg’对应登录名‘xg’。

--添加登录用户
create login xg with password = 'xg123';

--移除登录用户
drop login xg;

--添加数据库访问用户
use S100801A;
create user dbo_xg for login xg;
go 

--移除数据库访问用户
use S100801A;
drop user dbo_xg;
go
 
--分布权限
grant insert,select,update,delete on students to public --dbo_xg    
revoke insert,select,update,delete on students from public --dbo_xg

-- grant all on Students to aa_0801
--
 revoke all on students  from aa_0801
复制代码

使用SQL 命令分配权限时,可以通过使用 grant、deny、revoke 等命令实现。

 

posted on   钢钢  阅读(1644)  评论(1编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
历史上的今天:
2008-01-20 反编译工具Reflector下载(集成FileGenerator和FileDisassembler)

导航

统计

点击右上角即可分享
微信分享提示