使用登录触发器限制SQL Server登录身份验证范围

这篇具有很好参考价值的文章主要介绍了使用登录触发器限制SQL Server登录身份验证范围。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文在安全方面包含SQL Server登录身份验证范围,即如何可以控制SQL Server级登录触发器控制登录身份验证扩展。

常见SQL Server主体是客户端和登录名,并且受GRANT和DENY的授权约束。 SQL Server数据库引擎将通过来自任何Query Management Studio(SSMS),Application Integration或某些其他设备的身份验证请求来授权登录。

开发,QA或阶段服务器可以允许所有登录使用不同的客户应用程序对SQL Server进行身份验证,但是对于生产服务器,我们不能。 SQL Server登录应该使用进入客户端应用程序的授权身份验证的入口方法进行限制。 在本文中,我们将详细体验如何使用预定义的规则来限制SQ​​L Server登录范围,以批准客户/客户端应用程序。

本质上,数据库工程师将获得同意的访问权限,以将SQL Server数据库引擎用作指定级别。 作为行业标准,组织将对数据库用户进行单独登录以访问生产环境; 现在,每个应用程序可以具有不同SQL登录名,以便与数据库进行通信,无论如何,SQL登录名应该仅由数据库引擎利用客户\客户端应用程序来授权,而不仅仅是通过使用任何Query Management Studio或工具。

Microsoft SQL Server支持各种类型SQL触发器,例如DDL(数据定义语言),DML(数据操作语言)和登录触发器。

可以在登录触发器中定义授权规则指标,以命令SQL登录以增强数据库的安全性。 看到这里,我们试图阐明将登录触发中的不同原理与模型联系在一起的各种情况:
使用登录触发器限制SQL Server登录身份验证范围

允许登录授权访问数据库引擎。 (Allow Logins to Authorize to access database Engine.)

--Drop trigger tr_LimitUserApp ON ALL SERVER
 
    CREATE TRIGGER tr_LimitUserApp ON ALL SERVER
    FOR LOGON
    AS
         BEGIN
             DECLARE @app NVARCHAR(100);
             SET @app = APP_NAME();
             IF(@App LIKE 'SQL Server Management Studio')
                 BEGIN
                     RETURN;
             END;
                 ELSE
                 PRINT 'You are not allowed to connect from ' + @app + 'Status:- Failed';
             ROLLBACK;
         END;

例如,服务器“ sa”,“ jraiyani”,“ myel”和“ sdonda”中存在四个登录名。 必要时,我们只需要允许其中的几个“ sa”和“ jraiyani”访问SQL Server数据库引擎,这时下面会触发协助我们进行监督。

CREATE TRIGGER Prevent_login
ON ALL SERVER WITH EXECUTE AS 'sa'
FOR LOGON
AS
BEGIN
  DECLARE @LoginName sysname
  DECLARE @LoginType sysname
  
  SET @LoginName = ORIGINAL_LOGIN()
 
  IF(@LoginName NOT IN ('sa', 'jraiyani')) 
  BEGIN
    ROLLBACK; --Disconnect the session
  END
END

允许某些应用程序授权访问数据库引擎。 (Allow certain Applications to Authorize to access database Engine.)

在下面的示例中,我们仅允许“ myel”用户使用“ SQLCMD”应用程序登录。

CREATE TRIGGER Prevent_login
ON ALL SERVER WITH EXECUTE AS 'sa'
FOR LOGON
AS
BEGIN
  DECLARE @AppName varchar(max)
  DECLARE @LoginName sysname
  DECLARE @LoginType sysname
  
  SET @AppName = APP_NAME()
  SET @LoginName = ORIGINAL_LOGIN()
 
  IF(@LoginName = 'myel' AND @AppName like 'SQLCMD')
  BEGIN
    RETURN;--Login Authorized
  END
  IF(@LoginName NOT IN ('sa', 'jraiyani', 'sdonda'))
  BEGIN
    ROLLBACK; --Disconnect the session
  END

用户成功登录以进行授权SQL登录。
使用登录触发器限制SQL Server登录身份验证范围

SQL Server将不允许第二个IF条件中提到的受限用户。 在这种情况下,SQL Server将返回带有登录触发器参考的错误,如下图。
使用登录触发器限制SQL Server登录身份验证范围

我们可以在这里提到不同的客户端应用程序名称,以及客户端应用程序和SQL登录名的组合,以在SQL身份验证中过滤掉。

结论: (Conclusion:)

在登录触发器的帮助下,同样可以观察到客户端连接,类似于关联了哪个客户端以及何时在不同SQL Server安全级别上与准则共同努力共同建立了连接。 定期拒绝可能的高安全性安排,例如,默认的组织设置,登录名和密码,由 侵略者。
Microsoft SQL Server Data Tools, T-SQL Editor(vs登录)、Navicat Premium(Navicat Premium登录)、Microsoft SQL Server Management Studio 、 SQLCMD(cmd登录)
除了用户跟客户端应用,还可以通过SQLSERVER获取客户端IP针对电脑放权。
原文出处;https://blog.csdn.net/culuo4781/article/details/107626453文章来源地址https://www.toymoban.com/news/detail-453608.html

到了这里,关于使用登录触发器限制SQL Server登录身份验证范围的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 如何使用SQL语句创建触发器

    🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:记录SQL server触发器的创建语句,以及简单介绍. 触发器 是一种特殊类型的 存储过程 ,它不同于我们前面介绍过的存储过程。 存储

    2024年02月10日
    浏览(23)
  • 【SQL Server】数据库开发指南(九)详细讲解 MS-SQL 触发器的的创建、修改、应用与适用场景

    本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计的核心概念和基本步骤 【SQL Server】数据库开发指南(二)MSSQL数据库开发对

    2024年02月08日
    浏览(49)
  • SQL 触发器

    一、什么是触发器? 1、触发器是一个在修改指定表或数据库中的数据时执行的存储过程, 是通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性或唯一性。 由于操作数据库不能绕过数据库,所以就可以用它来强制实施复杂的业务规则来保证数据的完整性。 2、

    2024年02月10日
    浏览(20)
  • SQL视图、存储过程、触发器

    视图(view)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查

    2024年02月09日
    浏览(40)
  • 【基础7】SQL事务及触发器

    目录 事务(TRANSACTION) 触发器 DML触发器 DDL触发器 触发器的练习 什么是事务 事务是作为单个逻辑工作单元执行的一系列操作,它包含了一组数据库操作命令 所有的操作命令作为一个整体一起向系统提交,要么都执行、要么不执行 事是SQL Server 中执行并发控制的基本单位,是

    2024年02月06日
    浏览(30)
  • SQL sever中的触发器

    目录 一、触发器概念 二、触发器优缺点 2.1优点: 2.2缺点: 三、触发器种类 四、触发器创建 4.1创建DML触发器 4.2创建DDL触发器 4.3创建登录触发器 五、触发器管理 5.1查看触发器 5.1.1.使用sp_helptext存储过程查看触发器 5.1.2.获取数据库中触发器的信息 5.2修改触发器 5.2.1修改DM

    2024年02月05日
    浏览(30)
  • MySQL-SQL存储函数以及触发器详解

    ♥️ 作者:小刘在C站 ♥️ 个人主页:  小刘主页  ♥️ 努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️ 学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏: 云计算技术 ♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSD

    2024年02月11日
    浏览(33)
  • MySQL-SQL存储过程/触发器详解(下)

    ♥️ 作者:小刘在C站 ♥️ 个人主页:  小刘主页  ♥️ 努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️ 学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏: 云计算技术 ♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSD

    2024年02月11日
    浏览(38)
  • MySQL-SQL存储过程/触发器详解(上)

    ♥️ 作者:小刘在C站 ♥️ 个人主页:  小刘主页  ♥️ 努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️ 学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏: 云计算技术 ♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSD

    2024年02月09日
    浏览(33)
  • [SQL系列] 从头开始学PostgreSQL Union Null 别名 触发器

    初级的操作就是CRUD,但是高级的操作也是CRUD,只是语句写的更加复杂,不再是select * from table;这样简单,这次咱们学一些稍微高级点的。下面是上一篇文章。 [SQL系列] 从头开始学PostgreSQL 约束连接_Edward.W的博客-CSDN博客 https://blog.csdn.net/u013379032/article/details/131796564       

    2024年02月16日
    浏览(25)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包