Kategoria MS SQL Server

Uwaga do artykułu „Osieroceni użytkownicy” w MS SQL Server 2000-2008 R2

W październiku 2010 roku na portalu WSS umieściłem artykuł:

„Osieroceni użytkownicy w MS SQL Server 2000/2005/2008/2008 R2″

 

Omawia on problem niezgodności SID-ów zapisanych w tabelach sysxlogins i sysusers.

 

Chciałem dodać jedno spostrzeżenie podesłane przez czytelnika ww. artykułu.

W linku do Books Online (od wersji 2008 w górę) jest napisane, że ta procedura zostanie w przyszłości usunięta i żeby zamiast niej stosować ALTER USER.
Po sprawdzeniu mogę dodać, że jak na razie ta procedura jest dostępna we wstępnej dokumentacji do SQL Server „Denali”.

Zapraszam to przeczytania artykułu.

Czytaj dalej

W krótce SQL DAY 2010

W dniu 4 grudnia 2010 r. odbędzie się we Wrocławiu SQL DAY 2010.

Jest to specjalne wydarzenie organizowane przez Polską Grupę Użytkowników SQL Server (PLSSUG) z okazji 3 urodzin grupy.

Uczestnictwo w SQL Day 2010 jest bezpłatne, ale liczba miejsc jest ograniczona do 250 uczestników.

Wymagana jest „Rejestracja

Czytaj dalej

„Osieroceni użytkownicy” w MS SQL Server 2000/2005/2008/2008 R2

Na portalu WSS umieściłem artykuł: „Osieroceni użytkownicy w MS SQL Server 2000/2005/2008/2008 R2”

Omawia on problem niezgodności SID-ów zapisanych w tabelach sysxlogins i sysusers.

Problem ten popularnie nazywany jako „Osieroceni użytkownicy” (Orphaned Users).

Zapraszam to przeczytania artykułu.

Czytaj dalej

Zautomatyzowane uruchamianie SSMS

SSMS (SQL Server Management Studio) jest jednym z najbardziej rozpowszechnionych narzędzi do zarządzania MS SQL Serverem.

Wywodzi się on z projektu Yukon (SQL Server Workench).

UWAGA:

Dla wersji MS SQL Server 2005 należy uruchamiać jako sqlwb.exe
Dla wersji MS SQL Server 2008 i 2008R2 należy uruchamiać jako ssms.exe

Dalej opisywany będzie jako ssms.

Bardzo często zdarza się, że wielokrotnie uruchamiamy SSMS, otwieramy te same skrypty dotyczące tych samych serwerów i baz. Cały ten proces można zautomatyzować poprzez podawanie odpowiednich argumentów w linii komend podczas uruchamiania SSMS i tworzenie odpowiednich skrótów.

Składnia:

 Ssms.exe
 [scriptfile] [projectfile] [solutionfile]
 [-S servername[\instance name]] 
 [-d databasename]
 [-U username] [-P password] 
 [-E] 
 [-nosplash] 
 [-?]

Opis argumentów:

[scriptfile] – otwarcie jednego lub kilku skryptów (.sql). Należy podać pełną ścieżkę dostępu do plików.

np.  ssms "C:\SQL\Test1.sql" 
       ssms "C:\SQL\Test1.sql" "C:\SQL\Test2.sql"

UWAGA: Skrypty te są otwierane, ale nie są uruchamiane!

[projectfile] – otwarcie projektu SQL Server Management Studio(.ssmssqlproj)...

Czytaj dalej

Zamiana sid-a usera sidem z loginu w SQL Server 2000.

Bardzo często zdarza się, że przenosimy bazę danych na inną instancję serwera czy też na inny fizyczny serwer.

Mamy już założone loginy lub te loginy zakładamy. Po przeniesieniu bazy i po jej odtworzeniu posiadamy te same nazwy userów ale z innymi wartościami sid tzn. inny jest sid zapisany w tabeli sysusers należącej do przenoszonej bazy danych oraz inny jest sid zapisany w tabeli sysxlogins bazy systemowej master.

Należy podmienić sidy w tabeli wybranej bazy danych sysusers sidami z tabeli sysxlogins bazy master w ramach tej samej nazwy loginu i usera.

Poniżej przedstawiony kod działa wyłącznie na wersji MS SQL Server 2000.

Use master
GO

sp_configure @configname = 'allow updates'
, @configvalue = '1';
RECONFIGURE WITH OVERRIDE
GO

UPDATE su
SET su.sid = sl.sid
FROM [nazwabazydanych]..sysusers AS su
JOIN master..sysxlogins AS sl ON su.[name] like sl.[name]
WHERE su.[name] = 'nazwausera'
GO

sp_configure @configname = 'allow updates'
, @configvalue = '0'

RECONFIGURE WITH OVERRIDE
GO
Czytaj dalej

Porównanie nazwy tabel i ilości rekordów bazy na dwóch instancjach MS SQL Servera.

Przedstawiam rozwinięcie skryptu „Informacje o tabelach, ilościach wierszy i wielkościach danych zawartych w bazie danych.” przydatnego przy porównywaniu nazw tabel i ilości rekordów w bazach danych umieszczonych na różnych serwerach. Niżej przedstawiony skrypt uruchamiamy na serwerze źródłowym, wynikiem którego jest wygenerowany automatycznie skrypt służący do uruchomienia na serwerze docelowym.

Wynikiem tego skryptu będzie tabela przedstawiająca różnice w występowaniu tabel czy też różnej ilości rekordów w bazie danych.

Testowany na SQL Server 2000, 2008.

/* Author Dariusz 'DBSoft' Brejnak (c) 2010
name        rows Database
publishers1    8 Source -- inna nazwa tabeli lub brak w destination
titles        28 Source   -- inna ilość rekordów
publishers     8 Destination -- inna nazwa tabeli lub brak w source
sales         21 Destination -- brak tabeli w source
titles        18 Destination -- inna ilość rekordów
*/

SET NOCOUNT ON
CREATE TABLE #tmp
([name] varchar(50),
[rows] int,
[reserved] varchar (20),
[data] varchar (20),
[index_size] varchar(20),
[unsed] varchar(20)
)
CREATE TABLE #tmprows_source
([servername] varchar(50),
[basenam...
Czytaj dalej
DBBS