首页 > 数据库 >关于SQL Server数据库中的用户权限和角色管理

关于SQL Server数据库中的用户权限和角色管理

时间:2024-03-26 10:11:19浏览次数:28  
标签:角色 -- 数据库 用户 Server SQL 权限

简介

在SQL Server数据库系统中,管理用户权限和角色对于确保数据安全、完整性和可访问性至关重要。在本文中,我们将探讨在SQL Server数据库中创建用户、分配权限和管理角色的过程。我们将涵盖基本概念,并提供带有SQL代码片段的实际示例。

引言

用户管理涉及创建用户帐户、分配适当的权限以及将用户组织到角色中。角色通过将具有相似访问级别的用户分组来简化权限管理。很多人在实际的项目实践中,不会新建用户或者分配角色权限有问题,本文采用SQL代码操作,提供简便的操作方法,新建用户并为其分配角色和权限。

创建服务器登录名

当创建服务器登录名以后,该账号将可以登录服务器,初始化状态下的登录名是没有任何权限的,仅可进入服务器

--创建服务器
USE master
CREATE LOGIN USER1 WITH PASSWORD = '123456';
View Code

将用户映射到指定数据库

当用户登录数据库服务器以后,仅可看见已映射的数据库

--将用户映射到数据库
USE Student;
CREATE USER USER1 FOR LOGIN USER1 ;
View Code

创建数据库角色

创建你要要的角色名,并选择dbo架构,为分配角色给用户做准备

-- 创建数据库角色
CREATE ROLE UserViewRole AUTHORIZATION dbo;
View Code

分配权限

权限控制用户可以在特定数据库对象上执行的操作。权限可以在数据库级别或在诸如表、视图或存储过程等单个对象上授予。本文简单示例查询权限,将权限添加到角色。

-- 添加对目标表的 SELECT 权限
GRANT SELECT ON [dbo].[Student] TO UserViewRole;
GRANT SELECT ON [dbo].[Interface] TO UserViewRole;
View Code

分配角色

将用户添加到角色:

-- 将用户添加到角色
EXEC sp_addrolemember N'UserViewRole', N'Use1';
View Code

 

完成以上操作,将完成用户新建与角色、权限的分配操作,一下附加不添加角色,直接赋予权限的操作:

--数据库级别权限
--在数据库级别授予权限:

---- 在数据库上授予SELECT权限
--GRANT SELECT TO User1;

---- 在数据库中的所有存储过程上授予EXECUTE权限
--GRANT EXECUTE TO User1;
--对象级别权限
--在特定对象上授予权限:

---- 在表上授予SELECT权限
--GRANT SELECT ON TableName TO User1;

---- 在存储过程上授予EXECUTE权限
--GRANT EXECUTE ON StoredProcedureName TO User1;

结论

管理用户权限和角色对于维护数据库安全性并确保用户对数据具有适当访问权限至关重要。通过遵循最佳实践并利用SQL Server的强大功能来管理用户,您可以有效地控制对数据库资源的访问。

在本文中,我们介绍了在SQL Server中创建用户、分配权限和管理角色的基础知识。请记住定期审查和更新用户权限,以符合您组织的安全政策和数据访问要求。

 

标签:角色,--,数据库,用户,Server,SQL,权限
From: https://www.cnblogs.com/libo962464/p/18095980

相关文章

  • 分布式数据库技术的演进和发展方向
    这些年大家都在谈分布式数据库,各大企业也纷纷开始做数据库的分布式改造。那么,所谓的分布式数据库到底是什么?采用什么架构?优势在哪?为什么越来越多企业选择它?分布式数据库技术会向什么方向发展?带着这些疑问,一探究竟吧!参与文末的话题互动,更有机会赢取精美奖品~分布式数据库的架构演......
  • Centos7安装mysql8.0
    一、卸载MariaDB#查看版本rpm–qa|grepmariadb#卸载rpm–e--nodeps文件名#查看是否卸载干净rpm–qa|grepmariadb 二、安装mysql1、下载资源包 官网下载https://dev.mysql.com/downloads/mysql/Wget下载1、下载​wgethttps://dev.mysql.com/get/D......
  • Red Hat Enterprise Linux Server 7.9 扩展目录空间实践
    原磁盘总空间100GB,新加一块100GB硬盘扩展到/目录。一、收集待扩展磁盘目录信息lsblk    检查磁盘信息df-TH   检查磁盘目录root@localhost~]#lsblkNAME         MAJ:MINRM SIZEROTYPEMOUNTPOINTsda            8:0   0 1......
  • MySQL Delete 表数据后,磁盘空间并未释放,为什么?
    有开发小哥咨询了一个问题,记录一下处理过程分享给有需要的朋友。问题如下:MySQL数据库中有几张表增删比较频繁、数据变动剧烈且数据量大,导致数据增长过快,磁盘占用多。为了节约成本,定期进行数据备份,并通过delete删除表记录,但是执行delete操作后发现磁盘空间并未释放,这是为什么?MySQL......
  • [附源码]计算机毕业设计高校教材管理系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍随着高校教育资源的不断扩充和教育体系的日益复杂化,高效的教材管理变得尤为重要。一个专业的高校教材管理系统能够实现教材信息的集中管理、库存状态实时监控、......
  • [附源码]计算机毕业设计大学生创新项目管理系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍随着高等教育的不断发展,大学生创新项目成为培养学生创新能力和实践能力的重要途径。有效的项目管理对于确保创新项目的顺利进行和高质量完成至关重要。然而,目前......
  • [附源码]计算机毕业设计疫情下高校学生离校系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍疫情的突发和持续影响使得高校学生离校管理面临前所未有的挑战。为了确保校园疫情防控的有效进行,同时保障学生的健康安全和合理流动,一个计算机毕业设计的疫情下......
  • C-04.MySQL逻辑架构
    C-04.逻辑架构1.逻辑架构剖析1.1服务器处理客户端请求首先MySQL是典型的C/S架构,即Client/Server架构,客户端使用的是mysql,服务器端程序使用的mysqld。不论客户端进程和服务器进程是采用那种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(SQL语句),服务器......
  • Oracle与MySQL的差异和对比
    Oracle与MySQL的差异和对比:配套hands-on参考脚本。方便客户针对培训课件内容进行动手实践,加强理解。-----------------------------------主题:Oracle与MySQL的差异和对比--一、MySQL的基础特性--二、重要特性差异对比--三、性能对比和优化技巧--------------......
  • 数据库 char 与 varchar 的区别
     数据库内的char和varchar都是用于存储字符串数据类型的。两者主要区别是存储方式和存储情况:1)固定长度和可变长度char是固定长度的数据字符串类型,需指存储的字符长度;不论存储的字符长度是否达到了这个长度,都会占据指定存储的字符空间;例:定义一个char为10,......