SQL Server 新建登录名以及用户授权

这篇具有很好参考价值的文章主要介绍了SQL Server 新建登录名以及用户授权。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一,背景

最近公司要把数据库按照项目,重新建立数据库登录名和用户,并且新的登录名只能管理该项目下的数据库。
公司的数据库服务器上有很多项目数据库,之前一直是统一使用sa让应用连接数据库,为了提高数据的安全性,要禁用sa账户,因为这个账户权限太高,需要为每个项目单独创建一个登录名和用户。

开发要求:最好每个用户只能看到自己授权的数据库。
比如:
sa登录名的视角
数据库:
DataBase1
DataBase2
DataBase3

user1登录名的视角(假如,user1被授权的数据库为DataBase1)
数据库:
DataBase1

二,登录名与用户名的区别

“登录名登录后,通过检查数据库有没有与该登录名映射到用户名,如果有则赋予该登录名相应权限,如果无则拒绝赋予该登录名权限”。也就是说通过数据库用户名来确定该登录名对哪些数据库具有权限。

就像大楼和房间的例子:一个登录名可以被授权访问多个数据库,但一个登录名在每个数据库中只能映射一次。即一个登录可对应多个用户,一个用户也可以被多个登录使用。好比SQLSERVER就象一栋大楼,里面的每个房间都是一个数据库.登录名只是进入大楼的钥匙,而用户名则是进入房间的钥匙.一个登录名可以有多个房间的钥匙,但一个登录名在一个房间只能拥有此房间的一把钥匙。
引用自:登录名与用户名的区别

三,操作步骤

方案1

1,sa账户登录

2,单击 安全性 --》登录名 --》右键 新建登录名

sqlserver创建windows登录名和用户,SQLServer,数据库,sqlserver

3,输入 登录名,密码,取消 强制密码过期

sqlserver创建windows登录名和用户,SQLServer,数据库,sqlserver

3,点击 服务器角色
勾选,public(默认勾选)
sqlserver创建windows登录名和用户,SQLServer,数据库,sqlserver

sysadmin 执行SQL Server中的任何操作
serveradmin 配置服务器设置
setupadmin 安装复制和管理扩展过程
securityadmin 管理登录和CREATE DATABASE的权限以及阅读审计
processadmin 管理SQL Server进程
dbcreator 创建和修改数据库
diskadmin 管理磁盘文件

4,用户映射,只勾选当前用户负责的数据库,

数据库角色成员身份,勾选:db_owner。如果授权多个数据库,每个数据库都要勾选上db_owner。
勾选要授权的数据库,然后再下方窗格中勾选 db_owner。如果是授权多个数据库,一定要挨个操作,我在这里被坑了很久。
sqlserver创建windows登录名和用户,SQLServer,数据库,sqlserver

‘db_owner’ --拥有数据库全部权限,包括删除数据库权限 ‘db_accessadmin’ - - 只给数据库用户创建其他数据库用户的权限,而没有创建登录用户的权限。
‘db_securityadmin’ --可以管理全部权限、对象所有权、角色和角色成员资格
‘db_ddladmin’ --可以发出所有DDL(Create,Alter和Drop),但不能发出GRANT、REVOKE或DENY语句
‘db_backupoperator’ --允许对数据库进行备份和还原的权限【备份与还原是通过sql sever management
studio也可以进行】
‘db_datareader’ --可以选择数据库内任何用户表中的所有数据
‘db_datawriter’ --可以更改数据库内任何用户表中的所有数据
‘db_denydatareader’ --不能查询数据库内任何用户表中的任何数据 ‘db_denydatawriter’ --不能更改数据库内任何用户表中的任何数据

5,最后点击确定即可。

注意:

这种方式创建的用户,对于数据库来说并不是数据库的拥有者,所以在<安全对象> 当勾选 <查看任意数据库> 拒绝的复选框时,会发现没有任何数据库显示。取消勾选后,又可以看到所有数据库,只是未授权的数据库点击后提示:无法访问数据库。
sqlserver创建windows登录名和用户,SQLServer,数据库,sqlserver

这时,需要把对应数据库里对应的用户删除掉,然后再执行这句代码。将数据库的拥有者权限赋给login_name。
ALTER AUTHORIZATION ON DATABASE::databaseName TO login_name

方案2

1,sa账户登录

2,单击 安全性 --》登录名 --》右键 新建登录名

sqlserver创建windows登录名和用户,SQLServer,数据库,sqlserver

3,输入 登录名,密码,取消 强制密码过期

sqlserver创建windows登录名和用户,SQLServer,数据库,sqlserver

4,点击确定,点击新建查询

将指定数据库的所有权移交给这个登录名用户。即可。
MonitorData 替换为你的数据库
user 替换为你的登录名

ALTER AUTHORIZATION ON database:: [MonitorData] TO [user]

5,取消查看任意数据库权限

如果不想要显示该用户未授权的数据库,只需要在该登录名的属性–》安全对象–》查看任意数据 勾选拒绝。

4,总结

微软的SQLServer是学习的好地方,值得深入研究,有任何问题也可以评论或者私信我。
微软SQLServer官方文档地址
一起学习,共同成长。文章来源地址https://www.toymoban.com/news/detail-780518.html

到了这里,关于SQL Server 新建登录名以及用户授权的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu Server版 之 mysql 系列(-),安装、远程连接,mysql 创建用户、授权等

    Ubuntu 分 桌面版 和 服务版 桌面版 :有额外的简易界面 服务版:是纯黑框的。没有任何UI界面的可言 安装mysql 8.0 最新的ubuntu商店里面mysql 是 8.0版本的 安装位置 一般按照的位置存放在 /usr/bin 中 修改root 密码 8.0版本 退出程序或应用 exit 或 Ctrl +D 查看mysql的状态 service mysql st

    2024年02月15日
    浏览(74)
  • SQL Server实例间同步登录用户

    问题痛点 :由于AlwaysOn和数据库镜像无法同步数据库外实例对象,例如 登录用户、作业、链接服务器等,导致主库切换之后,应用连接不上数据库或者作业不存在导致每晚跑批任务漏跑等 目前来看,作业等其他实例对象的同步还比较难实现,比如作业分为很多步骤,而且作

    2024年02月09日
    浏览(39)
  • Sql Server 解决“用户登录失败,错误编18456”

    因 密码或用户名错误 而使身份验证失败并导致连接尝试被拒时,类似以下内容的消息将返回到客户端:“用户‘user_name’登录失败。 (Microsoft SQL Server, 错误:18456 )”。 返回到客户端的其他信息有: “用户‘user_name’登录失败。 (.Net SqlClient 数据访问接口)” --------

    2024年02月12日
    浏览(38)
  • Sql Server 创建用户并限制权限

    使用sa或者Windows身份验证登录,【安全性】-【登录名】,右键【新建登录名】 db owner --拥有数据库全部权限,包括删除数据库权限 db accessadmin --只给数据库用户创建其他数据库用户的权限,而没有创建登录用户的权限 db securityadmin --可以管理全部权限、对象所有权、角色和角

    2024年01月19日
    浏览(39)
  • SQL SERVER登录名的创建与删除

    目录 (一)前言 (二)创建用户 1. 对象资源管理器 2.  登录名配置页面 3. 密码策略说明 4. 服务器角色选择说明 (1)操作过程 (2) 账户的服务器角色介绍 5. “用户映射”页面 (1)操作过程 (2)其他数据库角色的权限官方介绍 6. 状态页面  (三)删除用户 数据库已经

    2024年02月05日
    浏览(35)
  • 微信小程序三种授权登录以及授权登录流程讲解

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《 微信小程序开发实战 》。🎯🎯 👉点击这里,就可以查看我的主页啦!👇👇 Java方文山的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你

    2024年02月08日
    浏览(53)
  • Blazor WebAssembly 自定义用户登录进行授权

    主要是前面四步,第五步是需要授权验证画面的书写参数。 1. 引用 Microsoft.AspNetCore.Components.Authorization 2. Program.cs 加入:             var builder = WebAssemblyHostBuilder.CreateDefault(args);             builder.Services.AddAuthorizationCore();//There is no registered service of type \\\'Microsoft.AspNetCore.Aut

    2024年04月28日
    浏览(39)
  • 【Oauth2.0 单点登录 + 第三方授权认证】用户认证、授权模式

    本文主要对 SpringSecurity Oauth 2.0 用户认证,授权码授权模式、密码授权模式,以及授权流程进行讲解 开发中,有些功能只有管理员才有,普通用户是没有的。即需要对用户的身份进行认证,是管理员还是普通用户。认证方式有两种: 身份认证: 用户在访问相应资源时对用户

    2023年04月08日
    浏览(65)
  • Linux系统用户安全(如何给其他用户授权)及引导登录的控制

    系统账号的清理 将非登录用户的shell设为/sbin/nologin usermod -s /sbin/nologin 用户名(设置为不可登录) 锁定长期不适用的账号 usermod -L 用户名 passwd -l 用户名 passwd -S 用户名 删除无用账号 userdel [-r] 用户名(-r选项删除用户家目录) 锁定账号文件passwd(用户配置文件)、shadow(用

    2024年02月10日
    浏览(55)
  • SqlServer2019—解决SQL Server 无法连接127.0.0.1的问题

    1、打开SQL Server 2019配置管理器 2、SQL Servere 网络配置(启用 Named Pipes 和 TCP/IP)  3、修改TCP/IP协议(右键选择属性—IP地址),具体如下图所示:  4、重启SQL Server服务  

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包