SQL Server

如何快速搜索SQL数据库数据和对象

喜夏-厌秋 提交于 2021-02-18 09:56:28
原文 如何快速搜索SQL数据库数据和对象 Frequently, developers and DBAs need to search databases for objects or data. If you’d ever searched for a database function that contains a specific table column or a variable name, or for a table that contains specific data, you would have found out that there’s no one click solution, such as Ctrl+F As there is no out-of-the-box solution in SQL Server management Studio, nor Visual Studio, here are a couple of options you can use: Searching for data in tables and views Using SQL to search for specific data in all tables and all columns of a database is far from an optimal

MSSQL sqlserver系统函数教程分享

南楼画角 提交于 2021-02-18 01:28:00
摘要: 下文收集了sqlserver函数教程,为每一个函数都进行了相关举例说明, 如下所示: sqlserver聚合函数教程: mssql sqlserver avg聚合函数使用简介 mssql sqlserver CHECKSUM_AGG聚合函数使用简介 mssql sqlserver count聚合函数使用简介 mssql sqlserver count_big聚合函数使用简介 mssql sqlserver grouping聚合函数使用简介 mssql sqlserver grouping_id聚合函数使用简介 mssql sqlserver max及min聚合函数使用简介 mssql sqlserver stdev及stdevp聚合函数使用简介 mssql sqlserver sum聚合函数使用简介 mssql sqlserver var及varp聚合函数使用简介 sqlserver分析函数教程: mssql sqlserver CUME_DIST分析函数使用简介 mssql sqlserver CUME_DIST分析函数原理说明 mssql sqlserver FIRST_VALUE LAST_VALUE分析函数使用简介 mssql sqlserver LAG lead分析函数使用简介 mssql sqlserver PERCENTILE_CONT分析函数使用简介

事务特性,事务的隔离级别,并发事务可能出现的问题,spring事务 数据库锁

六眼飞鱼酱① 提交于 2021-02-17 18:48:25
1.0 事务特性(ACID) Atomicity:原子性,一个事务不可以被拆分 Consistency:一致性,在事务执行前数据库的数据处于正确的状态,而事务执行完成后数据库的数据还是处于正确的状态,即数据完整性约束没有被破坏;比如我们做银行转账的相关业务,A转账给B,要求A转的钱B一定要收到。如果A转了钱而B没有收到,那么数据库数据的一致性就得不到保障,在做高并发业务时要注意合理的设计。 Isolation:隔离性,并发事务执行之间无影响,在一个事务内部的操作对其他事务是不产生影响,这需要事务隔离级别来指定隔离性; Durability:持久性,事务一旦执行成功,它对数据库的数据的改变必须是永久的,不会因各种异常导致数据不一致或丢失。 1.1 事务的隔离级别   READ_UNCOMMITTED 会出现脏读、不可重复读、幻读 ( 隔离级别最低,并发性能高 )   READ_COMMITTED 会出现不可重复读、幻读问题(锁定正在读取的行)   REPEATABLE_READ 会出幻读(锁定所读取的所有行)   SERIALIZABLE 保证所有的情况不会发生(锁表) 大多数数据库的默认隔离级别为: Read Commited,如Sql Server , Oracle . 少数数据库默认的隔离级别为Repeatable Read, 如 MySQL InnoDB存储引擎 1

docker for windows 使用mssql2017

梦想与她 提交于 2021-02-17 17:00:45
原文: docker for windows 使用mssql2017 确实有些坑,本来之前坑都踩过了,但是时间一久就忘记了,这次换电脑又都踩了一遍。 几个要点(坑): 1.docker安装时默认就好。然后C盘必须设置共享,否则后面做文件夹挂载时总是报错。 2.预设SA密码时,别再搞SASASA这种了,必须使用强密码,例如 Abc!@#123456。 3.宿主机使用MSSM链接数据库时,目前我没有改端口使用1433:1433,则要写 "localhost,1433",而不是冒号。 4.做数据库存储目录共享时,注意宿主机(WIN)目录从盘符开始,:使用/代替,例如: /d/data=d:\data 创建mssql2017容器命令 docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Abc!@#123456' -p 1433:1433 -v /d/sql.data/docker:/var/opt/mssql/data --name mssql2017 -d microsoft/mssql-server-linux:2017-latest 宿主机可以指安装 MSSM就好了,完整的数据库似乎就不需要了。 如果使用的是windows container 则需要拉取 mssql-server-windows-express 使用developer也可以

sqlmap tamper脚本备忘录与tamper脚本编写

北城以北 提交于 2021-02-17 07:58:29
查看sqlmap全部脚本 $ python sqlmap.py --list-tampers 使用方法 --tamper=TAMPER 2019.9更新后翻译 * apostrophemask.py-用其UTF-8全角字符替换撇号(')(例如'->%EF%BC%87) * apostrophenullencode.py-用非法的双unicode替换撇号(')(例如'->%00%27) * appendnullbyte.py-在有效载荷的末尾附加(访问)NULL字节字符(%00) * base64encode.py-Base64对给定有效载荷中的所有字符进行编码 * between.py- 替换较大比运算符('>')带有'NOT BETWEEN 0 AND#',等于运算符('=')与'BETWEEN#AND#' * bluecoat.py-用有效的随机空白字符替换SQL语句后的空格字符。然后用运算符LIKE替换字符'=' * chardoubleencode.py-双重URL编码给定有效负载中的所有字符(未处理已编码)(例如SELECT->%2553%2545%254C%2545%2543%2554) * charencode.py-URL编码中的所有字符给定的有效载荷(不处理已经编码的)(例如SELECT->%53%45%4C%45%43%54) *

docker,mysql,Navicat

北城以北 提交于 2021-02-17 01:02:00
Navicat破解网址 https://www.jianshu.com/p/5f693b4c9468 docker pull mysql docker run -d -p 3306:3306 --name mysql01 mysql/mysql-server docker logs mysql01 查看日志有默认密码 docker exec -it mysql01 bash 进入到容器里面 # mysql -uroot -p 默认是localhost,然后输入密码 use mysql 提示必须要改密码 修改用户密码 alter user 'root'@'localhost' identified by '123456'; SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password123'); select user,host from user //user表显示信息 改信息 mysql> CREATE USER 'Anker'@ 'localhost' IDENTIFIED BY 'pwd123456'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'Anker'@ 'localhost' WITH GRANT OPTION; mysql> CREATE USER 'Anker'@ '%'

二步实现 远程连接 阿里云SqlServer 2012 数据库服务器

孤人 提交于 2021-02-15 19:53:59
前言:在使用 阿里云 上的一些产品时,遇到不少坑。 安装IIS 时,遇到 因买的配置过低,虚拟内存不足,而导致 IIS 总是安装失败; 现在 在上面安装了个 Sql Sever 2012,远程老是 不能连接,百度找半天,终于能够连接上了。 实现步骤如下: 找到 安全组配置,打开 安全组配置,点击配置规则,增加 地址段访问的 授权规则,Sql Server的默认端口时 1433 。 服务器上 win + R 键入 compmgmt.msc ,打开 计算机管理,按照如图所示 设置。 注:IPAll 一栏 TCP端口必须设置,不然连接不上!!! 设置完成后,重启一下 Sql Server 服务。 在找问题解决方法中,有的人说,还需要增加 windows 防火墙的 1433 的入站规则,不过我也添加了,后来能够正常连接上Sql Server 后,我把那规则 给删除之后,试了试,同样也可以连接上。 如果以上二步,依旧不能正常连接 Sql Server ,再把 防火墙的 入站规则 给增加上再试试。 来源: oschina 链接: https://my.oschina.net/u/4562984/blog/4953016

数据库DNSLog外带注入-总结

*爱你&永不变心* 提交于 2021-02-13 18:33:47
sql注入中利用的骚姿势你又知道几个? DNSLog外带注入和DNSlog带外注入?(OOB) 其实是一样的,叫法不同!本人还是习惯叫外带注入,自我感觉,比较顺口 为什么需要外带注入? 当我们对一个数据库进行注入时,无回显,且无法进行时间注入,那么就可以利用一个通道,把查询到数据通过通道带出去,这里的通道包括: http请求、DNS解析、SMB服务等将数据带出。 of course!这里主讲DNSlog外带注入 mysql-DNSlog外带注入: 利用条件: 1. mysql.ini 中 secure_file_priv 必须为空。 ( ps. 修改mysql.ini 文件,在[mysqld] 下加入 secure_file_priv = ) mysql 新版本下secure-file-priv字段 :secure-file-priv参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录的。 当secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出 当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下 当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制 2.

【译】索引进阶(十):索引内部结构

泪湿孤枕 提交于 2021-02-13 16:55:00
【译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正】 原文链接: 传送门 。 在之前的系列文章中我们对索引进行了一个逻辑梳理,关注于它能为我们干什么。现在是时候对其进行一个物理上的分析并检查索引的内部结构。只有理解了索引的内部我们才能够理解索引的开销。只有通过了解索引的内部结构以及它是如何维护的,你才能够理解并最小化创建,修改,移除索引的开销,并理解数据行是如何插入,修改及删除的。 因此,在本章开始,除了索引的益处之外,我们将关注点扩展至包含索引的开销上。毕竟,最小化开销是最大化益处的一部分,而最大化索引的益处是本进阶系列一直所致力达成的。 叶子和非叶子层级 任何索引的结构都包含叶子和非叶子层级。尽管我们没有明确的说明,之前所有的层级关注于索引的叶子节点。因此,叶子节点其实就是表本身,每一个叶子节点的条目就是表的一行数据。对于非聚集索引,叶子节点包含了每行数据的一个对应的条目(过滤索引除外)。每一个条目包含了索引键列,可选的包含列,以及书签,而这个书签要么是聚集索引键列,要么是RID值,具体是哪一种值取决于其依赖表是一个聚集索引或是一个堆。 一个索引条目也叫作一个索引行,不管它是一个表的数据行(聚集索引叶子节点条目),指向一个表数据行(非聚集索引叶子节点),或者指向更低层的页(非叶子节点)。 非叶子节点是在叶子节点之上建立的一种结构,它使得SQL SERVER能够:

【译】索引进阶(一):SQL SERVER索引介绍

谁说我不能喝 提交于 2021-02-13 16:54:36
【译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正】 原文链接: http://www.sqlservercentral.com/articles/Stairway+Series/72284/ 对于数据库设计来说,索引是至关重要的,它告诉了那些大量使用数据库的开发者其所使用的数据库的设计意图。然而不幸的是,在实际开发过程中,索引常常是作为一个性能问题发生时候的解决方案被添加上的。这一些列关于索引的介绍可以让你与专业的数据库设计人员保持思想及设计上的一致。 第一节介绍SQL SERVER的索引,它是使SQL SERVER在最小的时间内查询或者修改所要请求的数据的一种数据库对象,它目的在于使用最小的系统资源达到最大的性能优化。除此之外,好的索引设计可以保证数据库达到最大的并发数,这样一个用户的 查询就几乎不会影响另一个用户的查询请求。最后,索引提供了保证数据一致性的有效方式。这个章节只是对于索引的简单介绍,包含了基本的概念和用法,对于其具体的实现细节后续章节会予以描述。 对于数据库开发者来说,对于索引的总体理解显得特别重要,其原因之一在于:当一个对于SQL SERVER的请求从客户端到达时,SQL SERVER仅仅有两种可能的方式来访问到所所请求的数据: # 它可以扫描数据库表的每一行数据,从第一行到最后一行,检查每一行来判断其是否满足所请求的查询条件。 # 或者