热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracle批量导出用户密码,MSSQL导出所有login账号和密码

1创建下面两个SP:CREATEPROCEDURE[dbo].[sp_hexadecimal]binvaluevarbinary(256),hexvaluevarchar(514

1> 创建下面两个SP:

CREATE PROCEDURE [dbo].[sp_hexadecimal]

@binvalue varbinary(256),

@hexvalue varchar (514) OUTPUT

AS

DECLARE @charvalue varchar (514)

DECLARE @i int

DECLARE @length int

DECLARE @hexstring char(16)

SELECT @charvalue = '0x'

SELECT @i = 1

SELECT @length = DATALENGTH (@binvalue)

SELECT @hexstring = '0123456789ABCDEF'

WHILE (&#64;i <&#61; &#64;length)

BEGIN

DECLARE &#64;tempint int

DECLARE &#64;firstint int

DECLARE &#64;secondint int

SELECT &#64;tempint &#61; CONVERT(int, SUBSTRING(&#64;binvalue,&#64;i,1))

SELECT &#64;firstint &#61; FLOOR(&#64;tempint/16)

SELECT &#64;secondint &#61; &#64;tempint - (&#64;firstint*16)

SELECT &#64;charvalue &#61; &#64;charvalue &#43;

SUBSTRING(&#64;hexstring, &#64;firstint&#43;1, 1) &#43;

SUBSTRING(&#64;hexstring, &#64;secondint&#43;1, 1)

SELECT &#64;i &#61; &#64;i &#43; 1

END

SELECT &#64;hexvalue &#61; &#64;charvalue

GO

CREATE PROCEDURE [dbo].[sp_help_revlogin] &#64;login_name sysname &#61; NULL AS

DECLARE &#64;name sysname

DECLARE &#64;type varchar (1)

DECLARE &#64;hasaccess int

DECLARE &#64;denylogin int

DECLARE &#64;is_disabled int

DECLARE &#64;PWD_varbinary  varbinary (256)

DECLARE &#64;PWD_string  varchar (514)

DECLARE &#64;SID_varbinary varbinary (85)

DECLARE &#64;SID_string varchar (514)

DECLARE &#64;tmpstr  varchar (1024)

DECLARE &#64;is_policy_checked varchar (3)

DECLARE &#64;is_expiration_checked varchar (3)

DECLARE &#64;defaultdb sysname

IF (&#64;login_name IS NULL)

DECLARE login_curs CURSOR FOR

SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM

sys.server_principals p LEFT JOIN sys.syslogins l

ON ( l.name &#61; p.name ) WHERE p.type IN ( &#39;S&#39;, &#39;G&#39;, &#39;U&#39; ) AND p.name <> &#39;sa&#39;

ELSE

DECLARE login_curs CURSOR FOR

SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM

sys.server_principals p LEFT JOIN sys.syslogins l

ON ( l.name &#61; p.name ) WHERE p.type IN ( &#39;S&#39;, &#39;G&#39;, &#39;U&#39; ) AND p.name &#61; &#64;login_name

OPEN login_curs

FETCH NEXT FROM login_curs INTO &#64;SID_varbinary, &#64;name, &#64;type, &#64;is_disabled, &#64;defaultdb, &#64;hasaccess, &#64;denylogin

IF (&#64;&#64;fetch_status &#61; -1)

BEGIN

PRINT &#39;No login(s) found.&#39;

CLOSE login_curs

DEALLOCATE login_curs

RETURN -1

END

SET &#64;tmpstr &#61; &#39;/* sp_help_revlogin script &#39;

PRINT &#64;tmpstr

SET &#64;tmpstr &#61; &#39;** Generated &#39; &#43; CONVERT (varchar, GETDATE()) &#43; &#39; on &#39; &#43; &#64;&#64;SERVERNAME &#43; &#39; */&#39;

PRINT &#64;tmpstr

PRINT &#39;&#39;

WHILE (&#64;&#64;fetch_status <> -1)

BEGIN

IF (&#64;&#64;fetch_status <> -2)

BEGIN

PRINT &#39;&#39;

SET &#64;tmpstr &#61; &#39;-- Login: &#39; &#43; &#64;name

PRINT &#64;tmpstr

IF (&#64;type IN ( &#39;G&#39;, &#39;U&#39;))

BEGIN -- NT authenticated account/group

SET &#64;tmpstr &#61; &#39;CREATE LOGIN &#39; &#43; QUOTENAME( &#64;name ) &#43; &#39; FROM WINDOWS WITH DEFAULT_DATABASE &#61; [&#39; &#43; &#64;defaultdb &#43; &#39;]&#39;

END

ELSE BEGIN -- SQL Server authentication

-- obtain password and sid

SET &#64;PWD_varbinary &#61; CAST( LOGINPROPERTY( &#64;name, &#39;PasswordHash&#39; ) AS varbinary (256) )

EXEC sp_hexadecimal &#64;PWD_varbinary, &#64;PWD_string OUT

EXEC sp_hexadecimal &#64;SID_varbinary,&#64;SID_string OUT

-- obtain password policy state

SELECT &#64;is_policy_checked &#61; CASE is_policy_checked WHEN 1 THEN &#39;ON&#39; WHEN 0 THEN &#39;OFF&#39; ELSE NULL END FROM sys.sql_logins WHERE name &#61; &#64;name

SELECT &#64;is_expiration_checked &#61; CASE is_expiration_checked WHEN 1 THEN &#39;ON&#39; WHEN 0 THEN &#39;OFF&#39; ELSE NULL END FROM sys.sql_logins WHERE name &#61; &#64;name

SET &#64;tmpstr &#61; &#39;CREATE LOGIN &#39; &#43; QUOTENAME( &#64;name ) &#43; &#39; WITH PASSWORD &#61; &#39; &#43; &#64;PWD_string &#43; &#39; HASHED, SID &#61; &#39; &#43; &#64;SID_string &#43; &#39;, DEFAULT_DATABASE &#61; [&#39; &#43; &#64;defaultdb &#43; &#39;]&#39;

IF ( &#64;is_policy_checked IS NOT NULL )

BEGIN

SET &#64;tmpstr &#61; &#64;tmpstr &#43; &#39;, CHECK_POLICY &#61; &#39; &#43; &#64;is_policy_checked

END

IF ( &#64;is_expiration_checked IS NOT NULL )

BEGIN

SET &#64;tmpstr &#61; &#64;tmpstr &#43; &#39;, CHECK_EXPIRATION &#61; &#39; &#43; &#64;is_expiration_checked

END

END

IF (&#64;denylogin &#61; 1)

BEGIN -- login is denied access

SET &#64;tmpstr &#61; &#64;tmpstr &#43; &#39;; DENY CONNECT SQL TO &#39; &#43; QUOTENAME( &#64;name )

END

ELSE IF (&#64;hasaccess &#61; 0)

BEGIN -- login exists but does not have access

SET &#64;tmpstr &#61; &#64;tmpstr &#43; &#39;; REVOKE CONNECT SQL TO &#39; &#43; QUOTENAME( &#64;name )

END

IF (&#64;is_disabled &#61; 1)

BEGIN -- login is disabled

SET &#64;tmpstr &#61; &#64;tmpstr &#43; &#39;; ALTER LOGIN &#39; &#43; QUOTENAME( &#64;name ) &#43; &#39; DISABLE&#39;

END

PRINT &#64;tmpstr

END

FETCH NEXT FROM login_curs INTO &#64;SID_varbinary, &#64;name, &#64;type, &#64;is_disabled, &#64;defaultdb, &#64;hasaccess, &#64;denylogin

END

CLOSE login_curs

DEALLOCATE login_curs

RETURN 0

GO

2> 上面建立后執行可导出所有 login和密码

EXEC sp_help_revlogin

来自 “ ITPUB博客 ” &#xff0c;链接&#xff1a;http://blog.itpub.net/25583515/viewspace-2146471/&#xff0c;如需转载&#xff0c;请注明出处&#xff0c;否则将追究法律责任。



推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了brain的意思、读音、翻译、用法、发音、词组、同反义词等内容,以及脑新东方在线英语词典的相关信息。还包括了brain的词汇搭配、形容词和名词的用法,以及与brain相关的短语和词组。此外,还介绍了与brain相关的医学术语和智囊团等相关内容。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
  • 本文讨论了在使用sp_msforeachdb执行动态SQL命令时,当发生错误时如何捕获数据库名称。提供了两种解决方案,并介绍了如何正确使用'?'来显示数据库名称。 ... [详细]
author-avatar
牧羊人2602903895
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有