SQL Server用户的设置与授权
SQL Server用户的设置与授权
SSMS 登陆方式有两种,一是直接使用Windows身份验证,二是SQL Server身份验证。使用SQL Server用户设置与授权不仅可以将不同的数据库开放给不同的用户外,而且可以提供一个通道给其他程序访问。

- 首先设置两个数据库,
test和aaa。实现创建一个pc用户,仅仅授权它访问test的功能

- 先对SSMS设置否则其默认是不提供给任何用户访问的。1、对数据库实例的属性进行设置:右键“数据库服务器”---属性---安全性,设置服务器身份验证=“SQL Server 和 Windows身份验证模式”,设置登录审核=“失败和成功的登录”,点击确定。


- 在SQL数据库中进行如下查询:
--创建账户:
--登录账户名:pc 密码:123456
--默认连接到的数据库:test
create login pc with password='123456',default_database=[test];
--此时,pc账户可以连接到SQL Server服务器上,但此时还不能访问数据库中的对象
--严格说,此时pc账户默认是guest数据库用户身份,可以访问guest能够访问的数据库对象
--指定数据库用户pc的默认模式是dbo
--相当于用户pc执行select * from t,实际上执行的是select * from dbo.t
--是查询补加dbo.前缀是为了与低版本SQL Server导过来的表相同
create user pc for login pc with default_schema=[dbo];
--在test数据库中,通过加入数据库角色,赋予数据库用户“db_owner”权限
--此时pc可以随意操作数据库test
use [test];
go
exec sp_addrolemember 'db_owner','pc';
go

该段SQL语句秉承微软数据库的所有传统,凡是涉及表名、数据库名都用 [ ] 表明,以免触发系统的关键字。
go 字段用于确保 use [test] 和 exec语句不分裂,否则 sp_adrolemember 这个SQL 保留的存储过程是无法执行的,找不到你所指定的数据库
关于dbo :dbo默认用户也是架构,dbo作为架构是为了更好的与2000兼容,这样2000中的代码移植到2005中就不会报错,dbo 在2005中是默认的架构,创建表时,如不指定架构则默认属于dbo为架构
- 执行后查看结果如下。在SSMS对象资源管理器--安全性--登录名中多了用户 pc 查看其属性--用户映射,可以看到test被用户pc映射,且其身份是db_owner,意即数据库拥有者。

- 但此时还不能用pc账号登录SQL。在服务器属性--连接---设置允许远程连接,在SQL Server配置管理器中允许TCP/IP 和 Named Pipes

- 重启,使用之前在sql语句中设置的用户名pc 和密码123456,选择 SQL Server 验证方式登录。

- 登录该账户后默认登陆在数据库test中,如果你要试图打开其他未授权数据库或者使用
use aaa;则会出现如下结果


- 删除账户。如果不需要这个pc账户了,可以在使用Windows身份验证登录SSMS后,执行以下代码,执行后pc就被删除了。
--删除数据库用户
drop user pc;
--删除 SQL Server 登录账户
drop login pc;
sa用户登录

安装SQL Server时设置了一个超级管理员 super administrator(sa),但在SQL Server中并不能像其他数据库的root账户一样直接用来登录。
若要使用 sa 来登录则必须进行如下设置:
- 设置 sa 的属性 允许登录

- 在属性--常规中,取消“强制实施密码策略”

- 使用sa账号和密码重新登录


SQL Server用户的设置与授权的更多相关文章
- 如何对SQL Server 2005进行设置以允许远程连接(转载)
如何对SQL Server 2005进行设置以允许远程连接(转载) 在尝试从远程计算机连接到 Microsoft SQL Server 2005 实例时,可能会接收到错误消息.在使用任何程序连接到 S ...
- SQL Server 2005中设置Reporting Services发布web报表的匿名访问
原文:SQL Server 2005中设置Reporting Services发布web报表的匿名访问 一位朋友提出个问题:集成到SQL Server 2005中的Reporting Services ...
- 2008 SQL SERVER 用户 架构
2008 SQL SERVER 用户: SERVER用户与数据库用户 SERVER 与 数据库用户的映射,以使 登陆用户可访问数据库 架构等同于SCHEM (表空间),即表空间管理对象,建立层次对象关 ...
- 应用C#和SQLCLR编写SQL Server用户定义函数
摘要: 文档阐述使用C#和SQLCLR为SQL Server编写用户定义函数,并演示用户定义函数在T-SQL中的应用.文档中实现的 Base64 编码解码函数和正则表达式函数属于标量值函数,字符串分割 ...
- 【关于服务器端SQL Server 2008的设置】 使其他客户端机可通过ODBC数据源可访问
服务器系统:Server 2003 数据库:SQL Server 2005 服务器配置:开启服务:server.workstation(这两个服务对于提供局域网共享有很大作用) 关闭防火墙 开启gue ...
- sql server 用户'sa'登录失败(错误18456)(转载)
转载地址:http://thenear.blog.51cto.com/4686262/865544 用户'sa'登录失败(错误18456)解决方案图解 当我们在使用sql server 的时候可能会遇 ...
- 定制Asp.NET 5 MVC内建身份验证机制 - 基于自建SQL Server用户/角色数据表的表单身份验证
背景 在需要进行表单认证的Asp.NET 5 MVC项目被创建后,往往需要根据项目的实际需求做一系列的工作对MVC 5内建的身份验证机制(Asp.NET Identity)进行扩展和定制: Asp.N ...
- SQL Server使用证书最小粒度授权
最近在项目中某个功能遇到了阻塞造成的Time out错误.所以需要在执行该功能的时候开启一个线程检测SQL Server中阻塞会话.但是程序本身使用的sql帐号本身不具备VIEW Sever Stat ...
- sql server 用户创建与权限管理
要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权:一.获得准许连接 SQL Server 服务器的权利: 二.获得访问特定数据库中数据的权利(select, update, ...
- sql server 用户'sa'登录失败(错误18456)
转载于:http://thenear.blog.51cto.com/4686262/865544 用户'sa'登录失败(错误18456)解决方案图解 当我们在使用sql server 的时候可 ...
随机推荐
- hexrays sdk study
There are 20 examples in /ida_path/plugins/hexrays_sdk/plugins, you can learn from that, you can als ...
- 【Python&GIS】判断图片中心点/经纬度点是否在某个面内
Python的exifread库可以获取图片中的源数据信息,包括经纬度.相机厂商.曝光时间.焦距.拍摄时间.拍摄地点等等信息.我们可以通过exifread库从图片中获取图片的经纬度,再通过shape ...
- 专访泛境科技:如何借助3DCAT实时云渲染打造元宇宙解决方案
随着5G.VR/AR等技术的发展,元宇宙(Metaverse)这一概念越来越受到关注.元宇宙是一个由虚拟世界构成的网络空间,其中人们可以通过数字化的身份和形象进行各种社交.娱乐.创作和商业活动.元宇宙 ...
- 沉思篇-剖析JetPack的Lifecycle
这几年,对于Android开发者来说,最时髦的技术当属Jetpack了.谷歌官方从19年开始,就在极力推动Jetpack的使用,经过这几年的发展,Jetpack也基本完成了当时的设计目标--简单,一致 ...
- JUC同步锁原理源码解析三----CountDownLatch、CyclicBarrier
JUC同步锁原理源码解析三----CountDownLatch.CyclicBarrier CountDownLatch.CyclicBarrier的来源 1.CountDownLatch的来源 A ...
- Self-Instruct 论文解读:利用大模型自己给自己生成指令数据,指令数据自动生成
总览 大规模"指令调整"的语言模型,即指令微调的LLM,已经表现出非凡的零样本能力,尤其是推广新任务上. 然而,这些模型严重依赖于人类编写的指令数据,而这些数据通常在数量.多样性和 ...
- Java并发(十二)----线程应用之多线程解决烧水泡茶问题
1.背景 统筹方法,是一种安排工作进程的数学方法.它的实用范围极广泛,在企业管理和基本建设中,以及关系复杂的科研项目的组织与管理中,都可以应用. 怎样应用呢?主要是把工序安排好. 比如,想泡壶茶喝.当 ...
- TP5 where查询一个字段不等于多个值
// 组装where条件$wheres = [];// 后台人员类型$people = input('people','');switch($people){ case "跟单员" ...
- SSIS向MySQL目标(Destination)写数据--Step By Step
前言(废话) 最近的工作中涉及到SQLSERVER向MySQL的数据迁移同步,团队中理所当然准备用开发C#微服务接口的方式实现,我觉得这个路子曲折了,推荐SSIS的方式并自告奋勇接下了这个活.不过以前 ...
- 一文详解 Okio 输入输出流
在 OkHttp 的源码中,我们经常能看到 Okio 的身影,这篇文章,我们把Okio拿出来进行一个详细的介绍学习. 输入输出的概念简述 Okio 简介 工程中引入 Okio API 简介及使用介绍 ...