-
Gesamte Inhalte
35 -
Registriert seit
-
Letzter Besuch
Über McKloony
- Geburtstag 14.08.1969
Profile Fields
-
Member Title
Newbie
Letzte Besucher des Profils
Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeit.
Fortschritt von McKloony
-
McKloony folgt jetzt dem Inhalt: Case When Abfrage
-
Ich versuche ein View auf eine Tabelle zu erstellen, die mehrere Felder enthält, die aber nicht immer einen Wert enthalten. Der Inhalt einiger Felder ist dann NULL. Hier ein Beispiel: Feld1 Feld2 Feld3 Feld4 Wert Null Wert Wert Null Null Wert Null Wert Wert Null Wert Mein Ziel die Werte aller Felder in einem neuen Feld des Views ausgeben zu lassen. Feld1 + ' ' + Feld + ' ' + Feld3 + ' ' + Feld4 As Neufeld funktioniert leider nur insoweit, dass nur dann etwas angezeigt wird, wenn alle vier Felder einen Wert enthlaten. CASE WHEN Feld1 IS NOT NULL THEN Feld1 + ' ' + CASE WHEN Feld2 IS NOT NULL THEN Feld2 + ' ' + CASE WHEN Feld3 IS NOT NULL THEN Feld3 Funktioniert auch nur dann, wenn alle Felder einen Wert enthalten. Weiß jemand eine Lösung?
-
Management Studio 2012 und 2016 Mischmasch
McKloony hat einem Thema erstellt in: MS SQL Server Forum
Auf einem Rechner ist das Management Studio 2012 sowie 2016 installiert. Das Management Studio bringt die SQLCDM.exe mit. Diese ist jetzt auch zweimal vorhanden. Wie kann ich sicherstellen, dass beim Aufruf die neuste Version verwendet wird? -
Mein Management Studio Anmeldedialog listet im Auswahlfeld immer noch Logins auf, die bereits gelöscht wurden. Kenn jemand evtl. einen Reg Key, wo man das bearbeiten kann?
-
Active Directory Admins Zugriff verweigern
McKloony antwortete auf ein Thema von McKloony in: MS SQL Server Forum
Das ist ja das Dilemma, beim SQL Server hat man ja nur die Wahl zwischen Windows Authentifizierung und dem gemischten Modus. Eine "pure" SQL Server Anmeldung gibt es nicht. Eventuell wird es von Microsoft mal eine Windows Server Rolle geben, die man einem technischem Admin Entziehgen kann, der den Zugriff auf den SQL Server Dienst regelt. -
Active Directory Admins Zugriff verweigern
McKloony antwortete auf ein Thema von McKloony in: MS SQL Server Forum
Der Admin soll ja alles können, aber eben nicht die Datensätze lesen. Das Problem hatte wohl auch die NSA mit Edward Snowdan :-) -
Active Directory Admins Zugriff verweigern
McKloony antwortete auf ein Thema von McKloony in: MS SQL Server Forum
Ich habe mich mit sa als sysadmin im SQL Server angemeldet und einfach den Server Login für den dort vorhandenen Windows Admin User entfernt. Jetzt sollte es eigentlich nur noch möglich sein, sich mit sa anzumelden, wenn man sysadmin Rechte haben möchte. Allerdings ist es für einen echten Windows Admin möglich, über das Commandfenster und der Anweisung "sqlservr.exe -m" den SQL Server im administrativen Modus zu starten und sich dann insgeheim ein neues Login mit allen Rollen zu erstellen, aber das werde ich auch noch irgendwie absichern. Das Beste wäre natürlich, dass man im Active Directory einen Windows Admin anlegen könnte, dem die Möglichkeiten fehlen, selber weitere Windows User anzulegen. Dann könnte man diesem Admin versuchen die Rollen zu entziehen, auf den SQL Server zuzugreifen. -
Active Directory Admins Zugriff verweigern
McKloony hat einem Thema erstellt in: MS SQL Server Forum
Bei einem SQL 2012 habe ich ein Script geschrieben, welches einer Datenbank einen Admin User und einen Standard User hinzufügt. Dem Admin User werden alle Rollen entzogen, die ihm ermöglichen, eine SELECT Anweisung auf Datensätze auszuführen. Er soll diese ja nicht sehen, sondern nur arbeiten am Sever und der Struktur der Datenbank durchführen. Der Standard User soll dagegen mit den Daten arbeiten können, also Lesen und Schreiben aber selber keine administrativen Änderungen durchführen können. USER MASTER GO DROP PROCEDURE USP_CREATE_LOGIN_STANDARD GO DROP PROCEDURE USP_CREATE_LOGIN_ADMIN GO CREATE PROCEDURE USP_CREATE_LOGIN_STANDARD ( @DefaultDatabase nvarchar(50), @LoginName nvarchar(50), @LoginPassword nvarchar(50), @DefaultSchema nvarchar(50), @User nvarchar(50)) AS BEGIN SET NOCOUNT ON DECLARE @SQL nvarchar(max) SET @SQL = 'IF NOT EXISTS (SELECT name FROM sys.syslogins WHERE name = ''' + @LoginName + ''')' + 'BEGIN ' + 'USE master; ' + 'CREATE LOGIN ' + @LoginName + ' WITH PASSWORD = ''' + @LoginPassword + ''', DEFAULT_DATABASE = ' + @DefaultDatabase + ', CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF; ' + 'PRINT(''New login ''''' + @LoginName + ''''' has been successfully created.'')' + 'END ' + 'ELSE ' + 'BEGIN ' + 'PRINT(''Login ''''' + @LoginName + ''''' already exists!!!'')' + 'END' EXECUTE (@SQL) SET @SQL = 'USE ' + @DefaultDatabase + '; ' + 'IF NOT EXISTS (SELECT name FROM sys.sysusers WHERE name = ''' + @User + ''')' + 'BEGIN ' + 'CREATE USER ' + @User + ' FOR LOGIN ' + @LoginName + '; ' + 'PRINT(''New user ''''' + @User + ''''' has been successfully created.'')' + 'END ' + 'ALTER USER ' + @User + ' WITH DEFAULT_SCHEMA = ' + @DefaultSchema + '; ' + 'EXEC sp_droprolemember ''db_accessadmin'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_backupoperator'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_datareader'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_datawriter'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_ddladmin'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_denydatareader'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_denydatawriter'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_owner'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_securityadmin'', ' + @User + '; ' + 'EXEC sp_addrolemember ''db_owner'', ' + @User + '; ' + 'EXEC sp_addrolemember ''db_datareader'', ' + @User + '; ' + 'EXEC sp_addrolemember ''db_datawriter'', ' + @User + '; ' + 'PRINT(''Privileges for user ''''' + @User + ''''' altered!!!'')' EXECUTE (@SQL) END GO CREATE PROCEDURE USP_CREATE_LOGIN_ADMIN ( @DefaultDatabase nvarchar(50), @LoginName nvarchar(50), @LoginPassword nvarchar(50), @DefaultSchema nvarchar(50), @User nvarchar(50)) AS BEGIN SET NOCOUNT ON; DECLARE @SQL nvarchar(max) SET @SQL = 'IF NOT EXISTS (SELECT name FROM sys.syslogins WHERE name = ''' + @LoginName + ''')' + 'BEGIN ' + 'USE master; ' + 'CREATE LOGIN ' + @LoginName + ' WITH PASSWORD = ''' + @LoginPassword + ''', DEFAULT_DATABASE = ' + @DefaultDatabase + ', CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF; ' + 'PRINT(''New login ''''' + @LoginName + ''''' has been successfully created.'')' + 'END ' + 'ELSE ' + 'BEGIN ' + 'PRINT(''Login ''''' + @LoginName + ''''' already exists!!!'')' + 'END' EXECUTE (@SQL) SET @SQL = 'USE ' + @DefaultDatabase + '; ' + 'IF NOT EXISTS (SELECT name FROM sys.sysusers WHERE name = ''' + @User + ''')' + 'BEGIN ' + 'CREATE USER ' + @User + ' FOR LOGIN ' + @LoginName + '; ' + 'PRINT(''New user ''''' + @User + ''''' has been successfully created.'')' + 'END ' + 'ALTER USER ' + @User + ' WITH DEFAULT_SCHEMA = ' + @DefaultSchema + '; ' + 'EXEC sp_droprolemember ''db_accessadmin'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_backupoperator'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_datareader'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_datawriter'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_ddladmin'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_denydatareader'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_denydatawriter'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_owner'', ' + @User + '; ' + 'EXEC sp_droprolemember ''db_securityadmin'', ' + @User + '; ' + 'EXEC sp_addrolemember ''db_backupoperator'', ' + @User + '; ' + 'EXEC sp_addrolemember ''db_ddladmin'', ' + @User + '; ' + 'PRINT(''Privileges for user ''''' + @User + ''''' altered!!!'')' EXECUTE (@SQL) END GO EXECUTE USP_CREATE_LOGIN_STANDARD @DefaultDatabase = 'Dummy', @LoginName = 'login_standard', @LoginPassword = 'login_standard', @DefaultSchema = 'dbo', @User = 'login_standard_user' EXECUTE USP_CREATE_LOGIN_ADMIN @DefaultDatabase = 'Dummy', @LoginName = 'login_admin', @LoginPassword = 'login_admin', @DefaultSchema = 'dbo', @User = 'login_admin_user' Jetzt habe ich aber das Problem, dass sich ein Admin immer noch mit Windows Authentifizierung anmelden kann und somit wieder Zugriff auf die Daten hat, sprich eine SELECT Anweisung ausführen kann. Welche Rollen muss man dem Active Directory Admin entziehen, damit das nicht mehr möglich ist? Es bringt ja auch nichts, beim SQL Server einen Login für den AD Admin zu generieren und ihm die Rechte dort zu entziehen. Der AD Admin kann ja wiederum einen weiteren AD Admin anlegen, für den im SQL Server kein Login existiert und hat somit wieder Zugriff. Ich finde eine Sicherheitslücke im SQL Server. -
Keine ActiveDirectory User beim SQL Server 2012/2014 Express
McKloony antwortete auf ein Thema von PadawanDeluXe in: MS SQL Server Forum
Ich weiß nicht ob Du das Problem schon geflößt hast, aber beim SQL 2012 muss er AD User eine bestimmte Server Rolle zugewiesen werden, damit er sich anmelden kann. -
Replikation von lokaler Datenbank auf Azure möglich?
McKloony antwortete auf ein Thema von A.Friend in: MS SQL Server Forum
Nein das ist so nicht möglich nur innerhalb von Azure Datenbanken, also keine "hybride cloud" http://stackoverflow.com/questions/10740548/sql-azure-replication -
Automatischer Rollenwechsel bei nur einigen Datenbanken
McKloony antwortete auf ein Thema von Ratsuchender in: MS SQL Server Forum
Hast Du denn mal einen Blick in das Server Log geworfen? Das Failover kann blockiert werden, wenn eine Anwendung oder ein Dienst auf die Datenbank zugreift und sie blockiert. Das kann auch eine abgestürzte Anwendung sein. -
SQL Server 2008 R2 neuer Login aber welche Serverrolle?
McKloony hat einem Thema erstellt in: MS SQL Server Forum
Ich möchte bei einem SQL Server 2008 R2 beziehungsweise SQL Server 2012 Express einen neuen Login erstellen. Dieser Login soll in der Lage ein, neue SQL Server Datenbank anzulegen, zu löschen, Logins für eine Datenbank zu erstellen, Datensätze anzufügen ABER nicht den Inhalt einer Tabelle lesen zu können. Es darf also nicht möglich sein, eine SELECT Anweisung auszuführen. Ziel soll sein, dass es einen Datenbank Admin gibt, der so ziemlich alles machen darf, aber eben nicht die Datensätze selber sehen, exportieren oder drucken darf. Ist so etwas über die standardisierten Serverrollen möglich oder nur, wenn man beim SQL Server 2012 Enterprise eine eigene Serverrolle anleget? -
Der Rest ist leider nicht selbsterklärend, sonst hätte ich nicht angefragt. Ich bin der Meiningen, dass es für diese Routineaufgaben auch schon ein fertiges Script geben könnte. Software wie dbcomparer usw. nutze ich selbstverständlich auch, diese kann man aber selbstverständlich nicht an Dritte weitergeben, ein Script eben schon. Trotzdem vielen Dank.
-
Gibt es ein fertiges Script, dass alle Tabelle, Abfragen und gespeicherte Prozeduren einer bestehenden SQL Datenbank ausließt und in einer anderen SQL Datenbank anlegt? Das ganze ohne Daten.
-
SQLCMD -i Fenster wird nicht geschlossen
McKloony antwortete auf ein Thema von McKloony in: MS SQL Server Forum
Der PAUSE Befehl bringt nix, das Command Fenster schließt sich einfach nicht. Aber mit EXIT geht es :-) -
Mit SQLCMD führe ich eine vorgefertigtes Script aus: SQLCMD -S ".\SQLEXPRESS" -E -i "c:\Backup\SQL_Create.sql" -o "c:\Backup\SQL_Create.txt" Dieses wird anstandslos ausgeführt und es wird auch die Datei SQL_Create.txt Datei erzeugt. Leider schließt sich danach das CDM Fenster nicht automatisch, man kann also nicht sehen, ob der Befehl ausgeführt wurde. Kennt jemand das Problem und eine Lösung?