﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>sql server Kullanıcı Adı ve Şifre Taşıma &#8211; SQL Server Eğitimleri</title>
	<atom:link href="https://sqlserveregitimleri.com/etiket/sql-server-kullanici-adi-ve-sifre-tasima/feed" rel="self" type="application/rss+xml" />
	<link>https://sqlserveregitimleri.com</link>
	<description>SQL Server ile ilgili her şey</description>
	<lastBuildDate>Fri, 18 Mar 2022 20:33:15 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>SQL Server&#8217;da Server’lar Arasında Kullanıcı Adı ve Şifre Taşıma</title>
		<link>https://sqlserveregitimleri.com/sql-serverda-serverlar-arasinda-kullanici-adi-ve-sifre-tasima</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Thu, 20 Jun 2019 20:52:14 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Server’lar Arasında Kullanıcı Adı ve Şifre Taşıma]]></category>
		<category><![CDATA[sql server Kullanıcı Adı ve Şifre Taşıma]]></category>
		<category><![CDATA[SQL Server'da Server’lar Arasında Kullanıcı Adı ve Şifre Taşıma]]></category>
		<guid isPermaLink="false">http://sqlserveregitimleri.com/?p=6325</guid>

					<description><![CDATA[Herkese merhaba, Bu yazıda sizlere SQL Server&#8217;da Server’lar arasında kullanıcı adı ve şifre taşıma işlemlerinin nasıl yapılacağından bahsedeceğim. İlk olarak bu işlem neden önemli ona...]]></description>
										<content:encoded><![CDATA[<p>Herkese merhaba,</p>
<p>Bu yazıda sizlere SQL Server&#8217;da Server’lar arasında kullanıcı adı ve şifre taşıma işlemlerinin nasıl yapılacağından bahsedeceğim.</p>
<p>İlk olarak bu işlem neden önemli ona değinelim.</p>
<p>Bazı durumlarda kullanıcıları görebilsek bile şifrelerini bilmiyor veya herhangi bir yerden bulamıyor olabiliriz. Şifresini değiştirme durumda uygulama tarafında değişiklik yapılması da gerekebilir.</p>
<p>Bu işlem için hazırlanmış bir script var. Siz de bu scripti kullanarak kullanıcıların yedeğini  problemsiz bir şekilde alıp taşıma işlemini gerçekleştirebilirsiniz.</p>
<pre class="line-numbers"><code class="language-sql">USE master;
GO
IF OBJECT_ID('sp_hexadecimal') IS NOT NULL
    DROP PROCEDURE sp_hexadecimal;
GO
CREATE PROCEDURE 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 (@i &lt;= @length)
BEGIN
    DECLARE @tempint INT;
    DECLARE @firstint INT;
    DECLARE @secondint INT;
    SELECT @tempint = CONVERT(INT, SUBSTRING(@binvalue, @i, 1));
    SELECT @firstint = FLOOR(@tempint / 16);
    SELECT @secondint = @tempint - (@firstint * 16);
    SELECT @charvalue = @charvalue + SUBSTRING(@hexstring, @firstint + 1, 1) + SUBSTRING(@hexstring, @secondint + 1, 1);
    SELECT @i = @i + 1;
END;

SELECT @hexvalue = @charvalue;
GO

IF OBJECT_ID('sp_help_revlogin') IS NOT NULL
    DROP PROCEDURE sp_help_revlogin;
GO
CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL
AS
DECLARE @name sysname;
DECLARE @type VARCHAR(1);
DECLARE @hasaccess INT;
DECLARE @denylogin INT;
DECLARE @is_disabled INT;
DECLARE @PWD_varbinary VARBINARY(256);
DECLARE @PWD_string VARCHAR(514);
DECLARE @SID_varbinary VARBINARY(85);
DECLARE @SID_string VARCHAR(514);
DECLARE @tmpstr VARCHAR(1024);
DECLARE @is_policy_checked VARCHAR(3);
DECLARE @is_expiration_checked VARCHAR(3);

DECLARE @defaultdb sysname;

IF (@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 = p.name)
    WHERE p.type IN ( 'S', 'G', 'U' )
          AND p.name &lt;&gt; 'sa';
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 = p.name)
    WHERE p.type IN ( 'S', 'G', 'U' )
          AND p.name = @login_name;
OPEN login_curs;

FETCH NEXT FROM login_curs
INTO @SID_varbinary,
     @name,
     @type,
     @is_disabled,
     @defaultdb,
     @hasaccess,
     @denylogin;
IF (@@fetch_status = -1)
BEGIN
    PRINT 'No login(s) found.';
    CLOSE login_curs;
    DEALLOCATE login_curs;
    RETURN -1;
END;
SET @tmpstr = '/* sp_help_revlogin script ';
PRINT @tmpstr;
SET @tmpstr = '** Generated ' + CONVERT(VARCHAR, GETDATE()) + ' on ' + @@SERVERNAME + ' */';
PRINT @tmpstr;
PRINT '';
WHILE (@@fetch_status &lt;&gt; -1)
BEGIN
    IF (@@fetch_status &lt;&gt; -2)
    BEGIN
        PRINT '';
        SET @tmpstr = '-- Login: ' + @name;
        PRINT @tmpstr;
        IF (@type IN ( 'G', 'U' ))
        BEGIN -- NT authenticated account/group

            SET @tmpstr
                = 'CREATE LOGIN ' + QUOTENAME(@name) + ' FROM WINDOWS WITH DEFAULT_DATABASE = [' + @defaultdb + ']';
        END;
        ELSE
        BEGIN -- SQL Server authentication
            -- obtain password and sid
            SET @PWD_varbinary = CAST(LOGINPROPERTY(@name, 'PasswordHash') AS VARBINARY(256));
            EXEC sp_hexadecimal @PWD_varbinary, @PWD_string OUT;
            EXEC sp_hexadecimal @SID_varbinary, @SID_string OUT;

            -- obtain password policy state
            SELECT @is_policy_checked = CASE is_policy_checked
                                            WHEN 1 THEN
                                                'ON'
                                            WHEN 0 THEN
                                                'OFF'
                                            ELSE
                                                NULL
                                        END
            FROM sys.sql_logins
            WHERE name = @name;
            SELECT @is_expiration_checked = CASE is_expiration_checked
                                                WHEN 1 THEN
                                                    'ON'
                                                WHEN 0 THEN
                                                    'OFF'
                                                ELSE
                                                    NULL
                                            END
            FROM sys.sql_logins
            WHERE name = @name;

            SET @tmpstr
                = 'CREATE LOGIN ' + QUOTENAME(@name) + ' WITH PASSWORD = ' + @PWD_string + ' HASHED, SID = '
                  + @SID_string + ', DEFAULT_DATABASE = [' + @defaultdb + ']';

            IF (@is_policy_checked IS NOT NULL)
            BEGIN
                SET @tmpstr = @tmpstr + ', CHECK_POLICY = ' + @is_policy_checked;
            END;
            IF (@is_expiration_checked IS NOT NULL)
            BEGIN
                SET @tmpstr = @tmpstr + ', CHECK_EXPIRATION = ' + @is_expiration_checked;
            END;
        END;
        IF (@denylogin = 1)
        BEGIN -- login is denied access
            SET @tmpstr = @tmpstr + '; DENY CONNECT SQL TO ' + QUOTENAME(@name);
        END;
        ELSE IF (@hasaccess = 0)
        BEGIN -- login exists but does not have access
            SET @tmpstr = @tmpstr + '; REVOKE CONNECT SQL TO ' + QUOTENAME(@name);
        END;
        IF (@is_disabled = 1)
        BEGIN -- login is disabled
            SET @tmpstr = @tmpstr + '; ALTER LOGIN ' + QUOTENAME(@name) + ' DISABLE';
        END;
        PRINT @tmpstr;
    END;

    FETCH NEXT FROM login_curs
    INTO @SID_varbinary,
         @name,
         @type,
         @is_disabled,
         @defaultdb,
         @hasaccess,
         @denylogin;
END;
CLOSE login_curs;
DEALLOCATE login_curs;
RETURN 0;
GO</code></pre>
<p>Yukarıdaki scripti çalıştırdığınızda karşınıza aşağıdaki ekran gelecek.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-6328 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2019/06/sql-serverda-serverlar-arasinda-kullanici-adi-ve-sifre-tasima-1.jpg" alt="SQL Server'da Server’lar Arasında Kullanıcı Adı ve Şifre Taşıma" width="700" height="183" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2019/06/sql-serverda-serverlar-arasinda-kullanici-adi-ve-sifre-tasima-1.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2019/06/sql-serverda-serverlar-arasinda-kullanici-adi-ve-sifre-tasima-1-315x82.jpg 315w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Bu ekranı başarılı bir şekilde gördü iseniz sıra geldi sonuçları almaya. Aşağıdaki prosedürü çalıştırıyoruz.</p>
<pre class="line-numbers"><code class="language-sql">EXEC sp_help_revlogin</code></pre>
<p>Sonucu aşağıda görmektesiniz.</p>
<p><img decoding="async" class="alignnone wp-image-6329 size-full" src="http://sqlserveregitimleri.com/wp-content/uploads/2019/06/sql-serverda-serverlar-arasinda-kullanici-adi-ve-sifre-tasima-2.jpg" alt="SQL Server'da Server’lar Arasında Kullanıcı Adı ve Şifre Taşıma" width="700" height="604" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2019/06/sql-serverda-serverlar-arasinda-kullanici-adi-ve-sifre-tasima-2.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2019/06/sql-serverda-serverlar-arasinda-kullanici-adi-ve-sifre-tasima-2-313x270.jpg 313w, https://sqlserveregitimleri.com/wp-content/uploads/2019/06/sql-serverda-serverlar-arasinda-kullanici-adi-ve-sifre-tasima-2-348x300.jpg 348w, https://sqlserveregitimleri.com/wp-content/uploads/2019/06/sql-serverda-serverlar-arasinda-kullanici-adi-ve-sifre-tasima-2-156x135.jpg 156w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Yukarıda Messages kısmında çıkan yazıların hepsini kopyaladıktan sonra not defteri ya da word dosyanıza kaydediyorsunuz. Not defteri tavsiyemdir.</p>
<p><strong>Not :</strong> Lütfen buradaki kaydetme işlemini unutmayın. Sorumluluk tamamen size aittir. Bu tarz işlemlerin geri dönüşü olmuyor çünkü.</p>
<p>Serverlar arası taşıma işlemi yapıldığında not defterine yapıştırmış olduğunuz kodları çalıştırırsanız ilgili kullanıcılar şifreleri ile oluşacaktır.</p>
<p>Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.</p>
<div class='epvc-post-count'><span class='epvc-eye'></span>  <span class="epvc-count"> 468</span><span class='epvc-label'> Kez Okundu</span></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
