如何用存储过程及SQL代码创建登录、用户和角色

创建 Windows 身份验证登录名 创建 Windows 身份验证登录名 现在,您已经以管理员身份连接到了 SQL Server,您的首要任务之一是授权其他用户进行连接。 实现此任务的步骤是创建一个登录名,然后授权此登录名以用户身份访问数据库。 登录名可以是使用 Windows 凭据的 Windows 身份验证登录名;也可以是 SQL Server 身份验证登录名(这些登录名在 SQL Server 中存储身份验证信息并独立于 阅读详情

首先理解什么是登录,什么是用户,什么是角色:

登录:SQL Server2005中,有两种创建登录的方式:一种是Windows验证登录;另一种是SQL Server身份验证方式。“登录方式”就好比办公楼上使用不同类型的锁,一旦选择了使用什么类型的锁,就可以开始为每位员工配发钥匙,而这个钥匙就是“登录”。或称“登录名”,但员工只有进入大楼的权利,但却没有权限查看和使用里面的资源(比如档案柜)。如果是sysadmin或securityadmin固定服务器角色的成员,则可以创建两种类型的登录之一:标准登录(比如前面比喻中的金属钥匙)和Windows登录(比如较新型的电子出入卡)。

用户:既然员工拥有了进入大楼的钥匙,就应该拥有适当的管理性访问权,他们需要通过访问其他资源来完成工作。例如,如果打算允许财务部访问账目文件,就需要给他们一把文件柜的钥匙。员工现在有两把钥匙:一把是打开大门的钥匙,一把是打开文件柜的钥匙。

同样,一旦用户已登录到了SQL Server上,就需要允许用户访问数据库。为此,需要创建数据库用户账户,然后给这些用户账户授予权限。一旦这个过程结束,SQL Server用户就拥有了多把钥匙:一把打开大门的钥匙(登录),以及一把打开他们需要访问的每个文件柜(数据库)的钥匙。

角色:会计需要签发公司支票,这个权限可以用两种方式之一来授予。第一,可以给每名会计分别提供一本从同一账户中支取的支票簿,并授予从该支票簿中开支票的权限。在这种情况下,需要设法跟踪当月已经开出的全部支票,否则这种方法可能会造成可怕的后果。完成这项工作的最佳方法是让整个公司账户只使用一本支票簿,并给所有会计授予从这本支票簿中开支票的一个组权限。

在SQL Server中,当几个用户需要访问数据库的权限时,比较容易的方法是将所有的权限作为一个组授给他们,而不是设法分别管理每个用户。

言归正传,先用存储过程实现以上操作:

创建新登录 具体语法请参考MSDN文档

--创建一个简单的登录,登录名为:newlogin;登录密码:123456;默认数据库:master,默认数据库也可以不指定。

EXEC sp_addlogin 'newlogin','123456','master'

--创建用户

--创建一个简单的用户,如果不指定用户名,则添加到当前数据库登录名中,如果不指定角色,则该用户默认属于public角色。下为添加newlogin登录名。

EXEC sp_adduser 'newlogin'

--创建一个带用户名的用户,用户可以与登录名相同(同上一种类似),也可以不同,但要设定当前登录名,用户角色可选,默认为public。下为将用户newuser添加到newlogin登录名中。

EXEC sp_adduser 'newlogin','newuser'

--创建角色

EXEC sp_addrole 'newrole'

--下为将用户下为将用户newuser添加到newlogin登录名中。并指定newrole角色。

EXEC sp_adduser 'newlogin','newuser','newrole'

--为角色newrole赋予jobs表的所有权限

GRANT ALL ON jobs TO newrole

--为角色newrole赋予sales表的查、改权限

GRANT SELECT,UPDATE ON sales TO newrole

--禁止角色newrole使用employees表的插入权限

DENY INSERT ON employees TO newrole

 

另一种创建用户和赋予角色的方式

--为登录newlogin在数据库中添加安全账户newuser

EXEC sp_grantdbaccess 'newlogin,'newuser'
--
添加newuser为角色newrole的成员
EXEC sp_addrolemember 'newrole','newuser'

--数据库用户、角色、登录的删除操作

--删除当前数据库用户

EXEC sp_revokedbaccess 'newuser';

--删除数据库登录

EXEC sp_droplogin 'newlogin'

--删除数据库角色

EXEC sp_droprole 'newrole'

--从数据库角色(newrole)中删除用户(newuser)

EXEC sp_droprolemember 'newrole', 'newuser'

--用SQL代码新建登录、用户

--创建带密码的mylogin登录名,MUST_CHANGE 选项需要用户首次连接服务器时更改此密码。

CREATE LOGIN mylogin WITH PASSWORD = '123456' MUST_CHANGE;

--创建映射到凭据的登录名。

--以下示例将创建mylogin登录名。此登录名将映射到mycredential凭据。

CREATE LOGIN mylogin WITH PASSWORD = '123456',

CREDENTIAL = mycredential;

--从Windows 域帐户创建登录名

--如果从Windows 域帐户映射登录名,则登录名必须用方括号([ ]) 括起来。

CREATE LOGIN [jack/xiangzhao] FROM WINDOWS;

--如果指定用户名,则不使用默认登录名作为该数据库用户

CREATE USER myuser FOR LOGIN mylogin

--以下示例将创建用户myuser拥有的数据库角色myrole

CREATE ROLE myrole AUTHORIZATION myuser;

--以下示例将创建db_role固定数据库角色拥有的数据库角色myrole

CREATE ROLE myrole AUTHORIZATION db_role;

SQL SERVER 服务器登录名、数据库用户名、服务器角色、数据库角色、DENY、sp_addlogin ETC. 数据库用户:隶属于服务器登录名;属于某组数据库角色以获取操作数据库的权限如果,添加登录名的时候,用户映射那里,同时选择了一个数据库。并且该数据库的角色,勾选了db_ower或更高权限。那么SqlServer会自动给该数据库添加一个和登录名同名的数据库用户,隶属于登录名myloginname。(注意:删除登录名时候,不会删除和该登录名关联的用户。所以,当下一次创建同名登录名给相同数据库分配角色时候。SQL会自动给该数据库添加同名的数据库用户名,但是数据库的用户中,已经存在该用户名,所以,会报错。 阅读详情

相关推荐

Abaqus滞回问题求解—浆锚连接装配式剪力墙滞回模拟

当下土木工程研究生,多数都在从事装配式混凝土构件安全或装配式混凝土构件连接节点力学性能的研究。研究这类问题,几乎脱离不开对有限元软件的使用,Abaqus求解能力非常强大,但模型处理能力相对较弱。装配式混凝土结构的有限元计算与传统现浇结构相比,其节点处理起来相对复杂,计算结果往往需要凸显出连接节点力学特性,所以对建模精程度的要求较高。所以向大家介绍一款工具—HyperMesh软件(一下简称Hm),它是专业的有限元前处理工具,用于处理装配式混凝土构件或连接节点有限元模型比较合适。这篇文章主要介绍如何利用Hm处理

qq_31918049的博客 2902

存储过程

在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL语句和流程控制语句的集合。就本质而言,触发器也是一种存储过程。存储过程在运算时生成执行方式,所以,以后对其再运行时其执行速度很快。SQLServer 2000 不仅提供了用户自定义存储过程的功能,而且也提供了许多可作为工具使用的系统存储过程。  存储过程的概念 存储过程(Stored Procedur

码农之道 945

瑞萨RA6M4平台I2C驱动移植实战:MPU6050传感器集成指南

本文详细介绍了在瑞萨RA6M4平台上进行I2C驱动移植并集成MPU6050传感器的实战指南。通过FSP配置工具添加I2C主栈,适配MPU6050官方驱动,实现传感器数据读取与调试,为嵌入式开发提供完整的解决方案。

banana的博客 109

MySQL存储过程的编写 (Navicat 15)

1.创建存储过程 在数据库下函数处右键点击新建函数,输入名称并选择过程,如下图所示 输入名称后点击完成及创建了一个空的存储过程,以创建登录存储过程为例,如下图 登录分析:输入用户名和密码 ,将输入的用户名和密码与数据表中的用户名密码进行比对,输出参数中返回比对结果(0 为输入正确,-1为输入有误), 假设现有一个表 名为user 内有两个字段 username password. CREATE DEFINER = CURRENT_USER PROCEDURE `login`( #输入参数放入该小括号中,

weixin_46246170的博客 2471

高速PCB差分对布线仿真实战案例

差分对布线是高速PCB设计的关键环节,直接影响信号完整性与EMI性能。本文结合实际项目,详解等长控制、阻抗匹配、间距优化等核心技巧,并通过仿真工具验证眼图、串扰和时序裕量,助力工程师规避常见高速pcb设计陷阱。

weixin_29092787的博客 350

单目视觉定位:深入解析PNP算法在机器人导航中的实战应用

本文深入解析了PNP算法在机器人单目视觉定位中的核心原理与实战应用。通过拆解坐标变换四步,详细阐述了如何从二维图像点反求相机三维位姿。文章结合OpenCV的solvePnP函数,提供了算法选择、参数调优及结果后处理的实用指南,并针对机器人导航中的特征匹配、尺度不确定性等挑战,给出了鲁棒性优化与实时性平衡的解决方案。

weixin_29083649的博客 419

SQL存储过程登陆实例

–USE [UserManage] –GO–DECLARE @return_value int, – @result nvarchar(50)–EXEC @return_value = [dbo].[UserLogin] – @name = root, – @pwd = 123, – @result = @result OUTPUT–SELEC

o527883184的博客 785

LTE信令流程——切换

LTE信令流程 切换 切换是由基站发起的,不同于小区重选,小区重选是由UE发起的。 基站利用移动性管理算法给UE下发测量任务,在RRC重配置消息中携带MeasConfig信元给UE下发测量配置 切换有三种场景: 同一基站内不同小区的切换 不同基站间基于X2的切换(MME不变) 不同基站间基于S1的切换(MME/SGW可能改变) 1. 同一基站内不同小区的切换 连接态的UE在一个基站的不同小区之间移动 UE上报合适的测量报告(Measure Reports),触发基站切换 基站下发切换命令给UE,

Hxx的博客 1万+

储存过程实现登录和注册

首先我建好了一张用户表表中有俩个字段 一个是账号,一个是密码当然这里我写的知识简单的登录和注册, 表明 users 用户表 字段 accountnum varchar(50) --表示账号 password varchar(50) --表示密码 登录存储过程 create proc use_login ( @accountnum varchar(50), @password varchar(50), @message varchar(50) output ) as if exists(

o_b_j_e_c_t的博客 864

uniapp 开发小程序 使用 `uni.canvasToTempFilePath` 导出图片时遇到的 “fail fail canvas is empty“ 错误解决方法

问题的关键在于,在调用时需要正确的上下文对象。如果没有传入this(vue2)或instance(vue3),就会导致导出失败,提示错误。这也提醒我们,在使用类似这样的 API 时,要确保上下文传递正确,以便函数能够正常执行。希望这个排查过程和解决方案能帮助你解决类似的问题!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2331

手把手教你玩转RISC-V指令集​​​专栏--​​1.2 对比x86/ARM:RISC-V的三大核心优势(开放、灵活、可扩展)​

​:RISC-V以“开放打破垄断、灵活适配场景、扩展定义未来”的三大优势,正在重塑计算架构格局。其核心价值不仅是技术革新,更是对全球半导体产业链话语权的重新分配。

amy_mhd的博客 130

SqlServer 添加用户 添加角色 分配权限

转载自:https://www.cnblogs.com/accumulater/p/6158387.html --创建一个简单的登录,登录名为:newlogin;登录密码:123456;默认数据库:master,默认数据库也可以不指定。 EXEC sp_addlogin 'newlogin','123456','master' --创建用户 --创建一个简单的用户,...

dielou5641的博客 401

【SpringBoot笔记44】SpringBoot多数据源配置(方式一:配置多个mapper扫描不同的包路径实现多数据源配置)

在SpringBoot应用开发中,一般情况下,都是只会配置一个数据源信息,之后整个工程都是对当前数据源进行增删改查的操作。但是,在实际开发里面,也有可能会遇到多数据源的情况,例如:当前工程中除了需要访问自己应用的数据库,还需要直接连接第三方系统的数据库进行业务处理,这种情况下,就需要进行多数据源的配置。SpringBoot考虑到了这一点,所以它是支持多数据源的配置的,下面介绍一下如何配置多数据源。

✅ Java 开发工程师 1117

在SQL Server中创建用户角色及授权

参考文献 http://database.51cto.com/art/201009/224075.htm 正文 要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许连接 SQL Server 服务器的权利; 获得访问特定数据库中数据的权利(select, update, delete, create table ...)。 假设,我们准备建立...

weixin_34335458的博客 7505

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【自学笔记】在SQL Server中创建用户角色及授权(使用SQL语句)更新2023.07.06

SQL Server创建用户角色及授权(使用SQL语句)

zgscwxd的博客 3万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

sql server创建新用户名登录以及为表添加角色和权限的多种方法

1.在SQL Server Management Studio中为所属的SQL服务器设置为SQL Server和Windows NT混合安全认证模式。其步骤如下: (1) 在对象资源管理器中,用鼠标右击需要设置的SQL服务器,在弹出的菜单中选择“属性”项,则出现服务器对话框。在“选择页”中选择“安全性”。 (2)在“服务器身份验证”中选择“SQL Server和Windo...

a123132123的博客 3万+

SQL创建和管理登录用户,数据库用户方法的方法

1. 创建新的SQL SERVER登录账号,登录名为usersf,密码为123。 操作: --(1)使用存储过程完成 EXEC sp_addlogin 'usersf','123' --(2)用sql语句创建 create login usersf1 with password='123' --(3)使用SSMS创建登录名 --安全性下面右击登录名 2. 为student数据库新建用户u1,...

但行好事,莫问前程 3万+

Oracle创建用户、角色、授权、建表

oracle数据库的权限系统分为系统权限与对象权限。系统权限( database system privilege )可以让用户执行特定的命令集。例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。对象权限( database object privilege )可以让用户能够对各个对象进行某些操作。例如delete权限允许用户删...

Devin 3万+

SQL 创建登陆,用户,角色

首先理解什么是登录,什么是用户,什么是角色: 登录:SQL Server2005中,有两种创建登录的方式:一种是Windows验证登录;另一种是SQL Server身份验证方式。“登录方式”就好比办公楼上使用不同类型的锁,一旦选择了使用什么类型的锁,就可以开始为每位员工配发钥匙,而这个钥匙就是“登录”。或称“登录名”,但员工只有进入大楼的权利,但却没有权限查看和使用里面的资源(比如档案柜)。如果...

weixin_30338461的博客 895

创建sql 用户登录

创建和管理用户登录, 具体操作如下: 1.单击需要登录的服务器左边的“+”号,然后展开安全性文件夹 2.用右键单击“登录名”,从快捷菜单中选择新建登录选项 3.在常规里填写新的登录名和选择身份验证模式.   4.在服务器角色里选择服务器角色 5.在数据库角色中选择可以访问的数据库和数据库角色 图…………………………………………………………..

卓尔游侠 1759

MSSQL创建用户角色及授权

要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许连接 SQL Server 服务器的权利; 获得访问特定数据库中数据的权利(select, update, delete, create table ...)。 假设,我们准备建立一个 dbtest 数据库帐户,用来管理数据库 mydb。 1. 首先在 SQL Server 服务器级别,

程序、软件、数据库等交流、开发专栏 9921

sqlserver中用户的创建,登录。用户与登录名的区别

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 —我要记录的有: 1.sql如何创建用户,并将用户添加到相应数据库下 2.登录名和用户的区别 √ 3.如何登录创建的用户 4.如何对用户进行授权以及撤销权限 5.如何使用触发器 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、sql如何创建用户,并将用户添加到相应数据库下二、登录名,用户名,角色三者的区别1.登录名和用户

weixin_62882080的博客 9939

SQL Server 登录名、用户、角色与权限

1.在SQL Server中,用户和角色是分为服务器级别和数据库级别的 2.服务器级别 登录名:指有权限登录到某服务器的用户,例如超级管理员的登录名是sa; 登录名具体位置在 数据库——>安全性——>登录名 服务器角色:为帮助您管理服务器上的权限,SQL Server 提供了若干角色,这些角色是用于对其他主体进...

weixin_30646505的博客 1889

【三桥君】如何在 SQL Server 中创建用户并分配权限?Sql server如何创建用户?

本文AI专家三桥君详细介绍了在SQL Server 2014中通过菜单向导创建新用户的方法。步骤包括:在"安全性"中新建登录名、设置SQL Server身份验证和密码、分配服务器角色(public或sysadmin)、配置用户映射选择可操作的数据库、设置用户状态为"授予"和"启用"。该方法操作简单直观,适合初学者快速掌握SQL Server用户管理的基本技能,帮助读者理解如何安全、高效地为数据库分配访问权限,确保数据安全管理的规范性。

三桥君 | 人工智能领域专家 2万+

SQL 创建登陆名,用户,角色

首先理解什么是登录,什么是用户,什么是角色: 登录:SQL Server2005中,有两种创建登录的方式:一种是Windows验证登录;另一种是SQL Server身份验证方式。“登录方式”就好比办公楼上使用不同类型的锁,一旦选择了使用什么类型的锁,就可以开始为每位员工配发

2308

SQL Server 登录名、用户、角色操作语句集合

在 SQL Server 中,预定义角色分为固定服务器角色和固定数据库角色,下面为你详细介绍这些角色及其权限。

weixin_39604653的博客 2087
上一篇: [诗词品读]最是人间有情苦
yeah86
博客等级 码龄18年 71粉丝 6原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值