-
SqlServer服务中利用触发器对指定账户进行登录ip限制提升安全性操作
转眼间上次写文章已经是2022年12月15日的事情啦,本来从2022年7月份开始写作之后保持着每周一篇,然而从12月15日后断更了这么久,经历了,隔离、阳、过年、从今天开始继续坚持写作,本片文章给大家分享SqlServer服务中利用触发器对指定账户进行登录ip限制从而提升账户的安全性,这样可以灵活的限制每个账户的允许登录IP,类似于PostgreSQL中pg_hba.conf配置文件的功能,MySQL则是在创建账户时可以配置账户允许登录IP,下面记录一下SQLServer如何实现。在MySql数据库中我们在创建一个新的用户时是可以选择这个用户的可用连接ip的,比如localhost或者某个ip甚至不做限制直接输入%则表示这个用户运行任意IP远程连接,但是在微软的MsSqlServer中在创建用户时则没有这样的设置,但是有时候我们处于安全问题,想要限制某个账户只能通过某个IP访问,通过防火墙设置的话会直接阻断这个IP对所有账户的访问,有点一棍子打死,不是我们想要的,这种情况下可以利用MsSqlServer数据库中的触发器来实现这个目的,当用户请求连接数据库时会触发我们提前写好的规则进行验...
数据库操作教程 2023-02-25 05:42:38 -
sqlserver字符串拼接的实现
目录1.概述2.数字+字符串2.1int+varchar2.2decimal+varchar3.数字+数字4.字符串+字符串5.使用CAST和CONVERT函数进行类型转换1.概述在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性。sqlserver:select'123'+'456';oracle:select'123'||'456'fromdual;或selectconcat('123','456')fromdual;mysql:selectconcat('123','456');注意:SQLServer中没有concat函数(SQLServer2012已新增concat函数)...
数据库操作教程 2023-02-25 05:42:32 -
SqlServer字符截取的具体函数使用
目录LEN()函数SUBSTRING()函数LEFT()函数RIGHT()函数CHARINDEX()函数STUFF()函数PATINDEX()函数unionall的使用LEN()函数获取字符串的长度。LEN(<字符>)--返回整型SUBSTRING()函数截取字符内指定位置、指定内容的字符...
数据库操作教程 2023-02-25 05:42:27 -
SQL Server 2019完整安装教程(最新最详细!)
引言:今天又双叒搞新电脑的环境,对于我这个.Net程序员,那就肯定离不开安装SQLServer了,网上没有找到很详细的教程,所以决定自己再写一份。下面直接进入主题...
数据库操作教程 2023-02-25 05:42:25 -
还原Sql Server数据库BAK备份文件的3种方式以及常见错误总结
目录第一种方法,使用SqlServerManagementStudio还原 常见错误:第二种方法,使用sqlserver语句还原常见错误:第三种方法,使用Navicat还原常见错误:总结第一种方法,使用SqlServerManagementStudio还原这是演示的是SqlServer2008R2版本,不同版本可能有细微差别右键点击数据库→还原数据库 在还原的源中选择源设备→点击选择框 在指定备份中点击添加→选择具体文件→确定→确定 勾选用于还原的备份集→这时目标数据库中会自动生成目标数据库名,在此选择即可→确定 即可还原BAK数据库备份文件 常见错误:1.指定的转换无效在选择具体文件的时候,我们可能会产生这个报错,导致这个的原因是BAK文件备份中的版本和高于我们的版本,需要部署更高版本的SqlServer。2.System.Data.SqlClient.SqlError:尚未备份数据库"xxx"的日志尾部2005版本以上,在还原BAK备...
数据库操作教程 2023-02-25 05:42:20 -
SQLServer数据库误操作恢复的方法
目录前言一、恢复数据实例1.创建初始数据2.保证数据恢复的前提条件3.模拟不小心误操作4.开始恢复二、恢复数据原理1.数据库文件类型2.使用bak恢复数据原理总结参考前言在日常开发工作中,有可能会存在数据库的误操作,比如不小心删除了一个表或者删除了一堆数据,这个时候我们就需要将数据库进行恢复,恢复到误操作以前的状态,而这篇文章就是主要如何在误操作之后,恢复数据库的数据。一、恢复数据实例1.创建初始数据usemasterifexists(select*fromsys.databaseswherename='test')dropdatabasetest;createdatabasetest;usetestcreatetableUserInfo(idint,namevarchar(50),nicknamevarchar(50),);goinsertintoUserInfovalues(1,'张三','小张');insertintoUserInfovalues(2,'张三2','小张');insertintoUserInfovalues(3,'李四','小李');insertintoUserI...
数据库操作教程 2023-02-25 05:42:15 -
SQLSERVER调用C#的代码实现
简单例子首先写一段简单的C#代码,然后把它编译成dll。namespaceBussiness{publicclassUserFunctions{publicstaticstringUserLogin(stringusername,stringpassword){varrandom=newRandom();varisSuccess=random.Next()%2==0;returnisSuccess?"登录成功":"登录失败";}}}接下来需要做的就是数据库参数配置,开启CLR支持,并且指定某个数据库支持unsafe模式...
数据库操作教程 2023-02-25 05:42:11 -
SQL 嵌套查询的具体使用
目录插入数据 select子查询(外语句先执行,内语句后执行)总结嵌套查询又称子查询,有select子查询,where子查询,from子查询,exists子查询。插入数据 #创建表及插入记录CREATETABLEclass(cidint(11)NOTNULLAUTO_INCREMENT,captionvarchar(32)NOTNULL,PRIMARYKEY(cid))ENGINE=InnoDBCHARSET=utf8;INSERTINTOclassVALUES(1,'三年二班'),(2,'三年三班'),(3,'一年二班'),(4,'二年九班');CREATETABLEcourse(cidint(11)NOTNULLAUTO_INCREMENT,cnamevarchar(32)NOTNULL,teacher_idint(11)NOTNULL,PRIMARYKEY(cid),KEYfk_course_teacher(teacher_id),CONSTRAINTfk_course_teacherFOREIGNKEY(teacher_id)REFERENCES...
数据库操作教程 2023-02-25 05:42:07 -
VS连接SQL server数据库及实现基本CRUD操作
目录连接数据库使用dataGridView控件显示表中的数据。实现基本CRUD操作总结连接数据库打开vs,点击视图,打开sql资源管理器,添加SQLServer输入服务器名称,用户名,密码,进行连接...
数据库操作教程 2023-02-25 05:41:55 -
SQL Server如何插入数据示例代码
目录前言1、插入完整的行1.1、基本的insert语法(语法简单,并不安全)1.2、更安全的insert语法2、插入部分行3、插入检索出的数据4、从一个表复制到另一个表5、全部代码补充知识:SQLSERVER循环批量插入数据总结前言在进行下面的操作前,先在数据库中新建两张数据表:(以下是创建数据表的代码)createtable学生表01(姓名nvarchar(10),性别nvarchar(1),身高numeric(3,2))createtable学生表02(姓名nvarchar(10),性别nvarchar(1),身高numeric(3,2))1、插入完整的行1.1、基本的insert语法(语法简单,并不安全)把数据插入表中最简单的方法是使用基本的insert语法:insertinto学生表01values('李明','男','1.70')将上述语句执行后,使用select语句即可看到结果select*from学生表01图片:该方法将存储到表的每一列数据在values子句中给出,必须每列提供一个值。如果某列没有值应该使用NULL值(假定表允许对该列使用空值)例如:insertinto学...
数据库操作教程 2023-02-25 05:41:52 -
SQLServer 清理日志的实现
本文以sql2012为例第一步,(查询日志中文件名和大小):USE数据库名GOSELECTfile_id,name,size,*FROMsys.database_files;查询结果如上图所示,可以看到其中name字段为日志文件名,size是日志大小,接下来就可以执行清理日志操作。值得注意的是,清理日志必须先将数据库转成简单模式,清理后再将数据库置为完全模式,具体的语句如下: 第二步,清理:USE[master]GOALTERDATABASE数据库名SETRECOVERYSIMPLEWITHNO_WAITGOALTERDATABASE数据库名SETRECOVERYSIMPLE--简单模式GOUSE数据库名GODBCCSHRINKFILE(N'文件名',11,TRUNCATEONLY)GOUSE[master]GOALTERDATABASE数据库名SETRECOVERYFULLWITHNO_WAITGOALTERDATABASE数据库名SETRECOVERYFULL--还原为完全模式GO其中文件名为第一步中查询出的name字段对应的内容...
数据库操作教程 2023-02-25 05:41:45