przejście do zawartości
Notatki
Narzędzia użytkownika
Zarejestruj się!
Zaloguj
Narzędzia witryny
Szukaj
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zarejestruj się!
Zaloguj
>
Ostatnie zmiany
Menadżer multimediów
Indeks
Ślad:
mssql
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
======= MS SQL ======= ===== Odtwarzanie bazy danych w przypadku błędów ===== {{::restore.png?800|}} ===== Eksportowanie użytkownika serwera ===== skrypt ze strony https://support.microsoft.com/pl-pl/help/918992/how-to-transfer-logins-and-passwords-between-instances-of-sql-server <code> 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 <= @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 <> '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 <> -1) BEGIN IF (@@fetch_status <> -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> Potem uruchomić <code> EXEC sp_help_revlogin </code> ---- Włączenie połączeń TCP/IP do serwera. Polecenie //svrnetcn -> TCP/IP -> Enable// ---- Authentication Mode\\ HKLM\Software\Microsoft\MSSqlserver\MSSqlServer\LoginMode\\ * 1 - Windows Authentication * 2 - Mixed Mode ---- Backup\\ "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\OSQL.EXE" -S KOMP\BAZA -E -i D:\Plik.sql ---- Zmiana hasła użytkownika **sa** * Uruchomić serwer w trybie single-user * Microsoft SQL server Management Studio * SQL Server Services * Właściwości instancji * Zakładka Advanced * W parametrach uruchomienia dodać ;-m na końcu * Zalogować się przez Windows Authentication * W Roles zmienić hasło użytkownika sa ---- Czy w sieci działa rozwiązywanie nazw na adresy IP? Można to sprawdzić za pomocą systemowego polecenie ping. Jego wywołanie z linii komend powinno mieć postać: ping nazwa_komputera. Wynikiem takiego polecenia powinien być adres IP podanego komputera. Jeżeli nie jest zwracany adres IP, wtedy konieczne jest ustawienie aliasu. W celu utworzenia aliasu należy przejść do odpowiedniego katalogu i uruchomić program: C:\Windows\system32\cliconfg.exe - systemy 32 bitowe C:\Windows\SysWow64\cliconfg.exe - systemy 64 bitowe Typ systemu operacyjnego można sprawdzić we właściwościach komputera. UWAGA: Wpisując komendę cliconfg w wierszu poleceń systemu Windows (Start / Uruchom / cliconfg) domyślnie uruchamiany jest program z katalogu C:\Windows\system32 Po uruchomieniu odpowiedniego programu przechodzimy na zakładkę alias i ustawiamy powiązanie między nazwą komputera, a jego adresem IP. W polu „Alias serwera” podajemy pełną nazwę instancji silnika SQL (nazwa_hosta\nazwa_instancji). Zaznaczamy biblioteki sieciowe TCP/IP, natomiast w polu „Nazwa serwera” w miejsce nazwy hosta podajemy jego adres IP. Adres IP możemy sprawdzić wpisując komendę ipconfig w wierszu poleceń systemu Windows (Start/ Uruchom/ cmd). UWAGA: W przypadku gdy problem z połączeniem występuje w obrębie tego samego komputera można podać lokalny adres IP 127.0.0.1 (interfejs loopback). alias.jpg Zadaniem aliasu jest więc pomoc w odnalezieniu odpowiedniego adresu IP serwera, gdy rozwiązywanie nazw w sieci nie działa prawidłowo. Czasem problemem w ustanawianiu połączenia do serwera SQL jest także nie odnalezienie odpowiedniego portu, na którym nasłuchuje serwer SQL. Wówczas warto odznaczyć parametr 'Określ port dynamicznie' i wpisać numer portu, na którym nasłuchuje serwer SQL. Numer portu możemy sprawdzić w errorlogu serwera SQL. Domyślnie plik znajduje się w lokalizacjach: C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG – lokalizacja dla serwera SQL 2005 lub C:\Program Files (x86)\Microsoft SQL Server\MSSQL11.OPTIMA\MSSQL\Log\ERRORLOG – lokalizacja dla serwera SQL 2012 Plik można otworzyć za pomocą notatnika. Informacja o numerze portu (xxxx) występuje po słowach Server is listening on [ 'any' <ipv4> xxxx] UWAGA: Jeśli alias zostanie nazwy inaczej niż nazywa się serwer SQL należy pamiętać, aby w programie Comarch ERP Optima konfigurując połączenie do serwera SQL podać w polu Server MS SQL nazwę aliasu.
mssql.txt
· ostatnio zmienione: 2023/05/12 14:27 przez
admin
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Do góry