Jump to content

tutter

Members
  • Gesamte Inhalte

    75
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von tutter

  1. ja das habe ich mir schon gedacht! ich habe noch 2 vm´s und werde es weiter probieren! Ich gehe auch noch mal der Thematik mit den Versionen nach. Sollte ich was finden poste ist es hier rein. Trotzdem danke für die Mühen!
  2. Hallo Nils, danke erst mal für deine Geduld :jau: . Aber ich glaub jetzt zweifelst du langsam endgültig an mir und ich kann mir auch keine Reim daraus machen. Also ich habe eine Datenbankrolle erstellt welche einfach test_lesend heißt! Diese Besitzt die Rechte von db_datareader (MS nennt das: "Schemas im Besitz dieser Rolle: ")und hat Mitglieder wie zb. unseren Domain\testaccount weitere Mitglieder sind lokal_user, SQL_user die letzten 2 User sind entweder als lokaler User dem System aber nicht der Domain bekannt und SQL_user ist nur dem SQL Server bekannt. Mit den zweien klappt ja auch alles deswegen gehe ich auf beide auch nicht weiter ein. Nur der User Domain\testaccount macht Ärger! Nun zum besten :rolleyes: in allen deinen 3 Abfragen steht mein User (Domain\testaccount) drin! :( Tja nun weiß ich auch nicht mehr warum es nicht geht, aber ich habe einen Verdacht. Ich habe irgendwie noch im Kopf das sich die Rollen unter SQL Server 2012 nun erstmals auch auf Serverebene erstellen lassen. Das kann mein SQL Server 2008 R2 noch nicht :nene:. Könnte es daran mit liegen? ich würde es gern mal testen aber ein 2012er System steht mir heute Abend erst wieder zur Verfügung. Nachtrag: Grundsätzlich nutze ich über Remote Desktop die Thematik aus, das ich mich auf dem SQL Server einmal per DomainUser und einmal per Lokalen User sowie über einen SQL Server User anmelde und das Skript laufen lasse.
  3. ok Tipps werde ich versuchen umzusetzen. Also noch mal exakter! (war vielleicht auch schon etwas Spät gestern) sp_helprole liefert natürlich nicht einfach so eine schnöde 0, sondern listet eine Tabelle auf und in der Spalte IsAppRole steht, bei den hier beleuchteten Rollen, eine 0. Wie schon geschrieben, soweit ok! Nun zurück zum eigentlichen Problem! Mittlerweile (nach einem Neustart des SQL Servers) erhalte ich als Rückgabewert eine 0! Somit erhalte ich die Fehlermeldung : "Current user is NOT a member of the ..." Das stimmt aber nicht da dieser User ein Domain Mitglied ist und sich sauber über Remote auf dem Server und anschließend an dem SQL Server (über WindowsAuthentifizierung) angemeldet hat. Schön zu sehen ist dies im Management Studio, wo der User sauber mit seinen Daten angezeigt wird. Soll heißen er steht dort mit Domain\User. Wenn ich nun in die Rolle schaue steht er ebenfalls in der Rolle mit exakt dieser Bezeichnung drin! Der User hat in der Rolle min. db_datareader Rechte. In einer anderen Rolle (ebenfalls schon getestet) hat er db_datareader und db_datawriter Rechte. Wenn ich nun einen User nehme welcher nur dem lokalen System bekannt ist, also kein Domain User, wird is_rolemember mit 1 Quittiert da dieser User sich in der entsprechenden Rolle befindet. Nehme ich eine Rolle in der sich der User nicht befindet wird dies mit 0 quittiert. Eine nicht existierende Rolle wird mit NULL Quittiert! Soweit also alles Richtig! Mach ich das ganze mit einen User der nur dem SQL Server bekannt ist und welcher sich dann auch mit einem SQL Server Login am SQL Server anmeldet klappt das auch! Aber warum nicht beim Domain User? eine eventueller Hinweis könnte dies hier sein: http://msdn.microsoft.com/de-de/library/ee677633.aspx ich stolpere immer über diesen Satz : Wenn database_principal auf einer Windows-Anmeldung basiert, z. B. Contoso\Mary5, gibt IS_ROLEMEMBER den Wert NULL zurück, falls database_principal der direkte Zugriff auf SQL Server nicht erteilt oder verweigert wurde. kann aber damit noch nicht so recht etwas anfangen. Vielleicht kann jemand hierzu was sagen? Vielleicht fehlt mir genau diese Einstellung?
  4. japp ist richtig ich will sie authorisieren. habe durch deinen Tipp die Rolleneinstellung für Tabellen und sogar für Spalten gefunden! Dankeschön! Man findet sie unter Eigenschaften der Tabelle und dann unter Berechtigungen
  5. das exec sp_helprole habe ich naturlich auch ausprobiert und es kommt naturlich nur 0 raus! was ja auch klar ist, weil es ja keine anwendungsbezogene Rolle ist sondern eben benutzerbezogene rolle. ja eigentlich könnte man auch die fehlermeldung auswerten. aber ich wollte eine elegantere lösung. gib mal noch ein paar mehr infos wie das bei dir abgelaufen ist und wie oder was du konkret getestet hast. wie gesagt bei einem user aus dem DC, der sich in der rolle befindet, klappt das skript nicht! ich erhalte immer NULL bzw. die Fehlermeldung die das Skript ausgeben soll. Nutze ich das Skript für einen lokalen User oder nur einen DatenbankUser klappt das Skript und ich erhalte 0 wenn nicht in Rolle oder eben 1 wenn in Rolle. Das Unterstreicht dann auch die Aussage von Microsoft. Aber wenn das bei dir klappt, würde ich gern wissen was du einsetzt. Denn für mich wäre diese Lösung noch immer die beste. Achso eine Auslesung der Gruppenmitgliedschaft würde auch nichts bringen, da diese Gruppen leider nicht mal ansatzweise mit den Gruppen die ich im SQL Server benötige übereinstimmen.
  6. Die Anforderung ist eigentlich ganz einfach. Es soll zwei (in MS-Deutsch Rollen)Gruppen geben pro Datenbank. Die eine kann nur lesen und die andere kann lesen und schreiben. Wenn nun ein Programm(PHP Eigenentwicklungen) etwas in die Datenbank schreiben will dann soll eine Fehlermeldung kommen. zb. Du hast keine Rechte dafür. Das wollte ich gewährleisten mit dem auslesen der Rechte an sich. zb, Wenn User X in Rolle lesen ist dann gib über php beim ausführen die Meldung Du hast keine Rechte dafür aus. Also sozusagen eine einfache Rechtesteuerung für die Programme die mit dem SQL Server zusammenarbeiten. Ein muss ist das das ganze aber über die Windows AD Authentifizierung laufen muss! Die SQL Authentifizierung geht dafür leider nicht!
  7. was ich jetzt weiter herausgefunden habe das er die User die ich in die Rolle übernehme auch mit IS_Rolemember auslesen kann bzw. er mir eben sagt das es ein Mitglied der Rolle ist. Jedoch macht der das nicht mit den sich in der Domän-befindlichen Usern. Warum ? verstehe das Verhalten überhaupt nicht! Der DomainUser wird bestens ausgelesen vom SQL Server und kann der Rollle hinterlegt werden. Wenn man sich nun mit dem DomainUser am SQL Server über Windows Authentifizierung anmeldet kann ich mich zwar im SQL Server sauber anmelden aber das Skript funktioniert nicht bzw. oder mach ich was falsch oder interpretier hier was falsch? Fehler gefunden! If the domain controller is not available, the call to IS_ROLEMEMBER will return accurate information when the Windows principle can be authenticated locally, such as a local Windows account or a SQL Server Login. Zitat Microsoft! Jedoch stellt sich mir nun die Frage wie sonst? Wie kann ich Überprüfen ob ein Domän-Mitglied in einer Rolle ist?
  8. japp macht sie also : USE Testdatenbank; GO IF IS_ROLEMEMBER ('Testrolle') = 1 print 'Current user is a member of the db_datareader role' ELSE IF IS_ROLEMEMBER (''Testrolle) = 0 print 'Current user is NOT a member of the db_datareader role' ELSE IF IS_ROLEMEMBER ('Testrolle') IS NULL print 'ERROR: The database role specified is not valid.'; Unter dieser Testdatenbank befindet sich auch der angelegt User. muss ich im Skript noch irgendwas machen?
  9. Hallo an alle, ich habe ein weiteres Problem was mir Kopfschmerzen bereitet. Vielleicht könnt ihr ja helfen. Ich habe eine eigene Datenbankrolle unter einer Datenbank erstellt. In diese Rolle habe ich ein Paar User gepackt. Nun will ich über die Funktion IS_ROLEMEMBER herausbekommen ob der User sich auch darin befindet. IF IS_ROLEMEMBER ('Testrolle') = 1 print 'Current user is a member of the db_datareader role' ELSE IF IS_ROLEMEMBER (''Testrolle) = 0 print 'Current user is NOT a member of the db_datareader role' ELSE IF IS_ROLEMEMBER ('Testrolle') IS NULL print 'ERROR: The database role specified is not valid.'; Naturlich bekomme ich die Meldung 'ERROR: The database role specified is not valid', aber wie kann ich den Skript sagen das er auf Datenbankebene suchen soll also zb. auf Testdatenbank.dbo.testtabelle kann jemand helfen?
  10. Hallo an alle, wie die Überschrift schon erahnen lässt suche ich eine Möglichkeit Benutzer auf Tabelleneben zu Authentifizieren. Mein großes Ziel ist es 2 Gruppen (Rollen) anzulegen. Davon kann ist eine ein Datareader und die andere ein Datawriter(klappt auch). jedoch soll diese Einstellung nicht auf alle Tabellen vererbt werden sondern nur auf selektierte. zb. User "ichkannlesen" soll nur die Datenbank "Bücher" mit der Tabelle "Dokumentation" lesen können. Von der Tabelle "Schundmagazine" ;) in der gleichen Datenbank muss er ja nichts wissen :rolleyes:. Wie kann ich das nun bewerkstelligen? Die folgende Lösung ist eher unbrauchbar weil der Aufwand für mich zu hoch wäre und klappen tut es bis jetzt auch nicht bei mir :mad: .Mehrere Themenbezogene Datenbanken will ich auch nicht. http://www.mcseboard.de/topic/179773-datenbankrolle-und-datenbank-schema-berechtigungsproblem/ Hat jemand noch eine Lösung für mich? danke schon mal vorab
  11. Problem ist nur es muss der odbc sein! keine Chance für etwas anderes!
  12. wie die verzwickte Überschrift schon sagt würde ich gern über die Windowsauthentifizierung mich am MS-SQL Server anmelden! Das an sich ist ja kein Thema aber!! wie mache ich das über eine ODBC-Verbindung via php? ich habe zwar ein paar Anleitungen im Netz gefunden aber bis jetzt half mir leider nichts weiter! Vielleicht hat der ein oder andere hier im Forum vielleicht noch den passenden Befehlssatz damit ich die Windowsauthentifizierung endlich nutzen kann. PS: die SQL-ServerAuthentifizierung über ODBC via php klappt bestens!
  13. Mit der i access software werden die spezifischen treiber installiert. Somit war es dann am ende kein problem einen linked server aufzusetzen jedoch sehe ich nicht die tabellen der as400 ich kann sie aber ansprechen! Noch eine idee wie ich das hinbekomme?? Gibt es noch andere verfahren fuer einen zugriff ohne import in den sql server ich will die tools des sql servers nutzen
  14. Hallo Leute der Titel sagt eigentlich schon alles! Ich möchte einen Linked Server zu einer DB2 Datenbank die auf einer AS 400 zugriff hat. Gibt es hierfür eine ***ensichere Anleitung oder kann hierfür jemand helfen? Der Linked Server steht zwar aber ich sehe absolut nichts! Obwohl mein User die passenden Rechte hat da mein User unter IBM System i Navigator die Schematas auf der AS 400 sieht. Ich bin mit meinem Latein am Ende kann jemand helfen?
  15. so meine Herren ich habe es noch weiter eingrenzen können und wieder etwas dazu gelernt um PHP ausführen zu können muss der PDO_SQLSRV installiert sein! genau dieser scheint aber nicht zu funktionieren! ich habe einen inoffiziellen für PHP5.5 eingesetzt der PDO Treiber funktioniert aber leider nicht der gesagte PDO_SQLSRV er heißt php_pdo_sqlsrv_55_nts.dll (genau das PHP Paket ist auch installiert). Um auf nummer sicher zu gehen habe ich aber auch die php_pdo_sqlsrv_55_ts.dll in die php.ini eingehangen was kann ich nun tuen? muss ich auf PHP 5.4 zurück oder gibt es doch eine Lösung für mich und PHP 5.5
  16. also danke schon mal für die Tipps ich habe rausgefunden das es wohl einer der treiber ist die rumzickt! immer sicher zu sein das es wirklich daran liegt habe ich mir mal eine neue Maschine aufgesetzt und teste das morgen mal. es ist ein normaler SQL Server 2008 r2 aktuell als Evaluation. zum SA als User sei gesagt das ich hier ein Beispiel nur angegeben habe und der SA ist mir als erster User in den Sinn gekommen! wenn SQL Authentifizierung passt würde ich gern auf Windows-Authentifizierung umstellen.
  17. Hallo an alle, ich möchte eine simple Datenbankabfrage mit SQL auf aus PHP heraus realisieren. dazu muss ich mich an dem MS-SQL Server anmelden mit PHP. <?php $Server = 'TESTSQLSERVER'; $Verbindung = mssql_connect($Server,'SA','geheimesPW'); if(!$Verbindung) { die('geht nicht'); } ?> jedoch bekomme ich keine Connect weder noch eine Fehlermeldung! aber der IIS und SQL Server sowie PHP läuft auf dem Server. Ich habe keine weitere SQL-Server-Instanz installiert also sollte der Servername ausreichen für den Connect. Also was mach ich falsch?
  18. super danke an alle! die letzten Tipps haben mir sehr viel geholfen! der Import hat funktioniert und die Daten sehen auf den ersten Blick auch gut aus!
  19. ich wüsste nicht wie! :schreck: da ich in der Source im SSIS ja nur den Server an sich und dessen Datenbanken/Tabellen angeben kann. habe aber auch schon rausgefunden das die Fehlermeldung zurückzuführen ist auf die Versionsproblematik von 2012 auf 2008 damit funktioniert der Task Datenbankübertragung an der Stelle auch nicht! Während der Erstellung eines DTSX-Paktes stellte ich fest das sich ja wohl der Datentyp geändert hat. Somit bekomme ich beim Import ein Problem der Konvertierung von DT_I4 zu DT_NEXT und hier bin ich nun wirklich am Ende mit meinem Wissen.
  20. Also ich habe nun nach einer Lösung über SSIS gesucht und festgestellt das es die Möglichkeit über den Task Datenbankübertragen gibt. Jedoch funktioniert das bei mir leider nicht. Die Fehlermeldung lautet: Für die Quellverbindung muss eine SQL Server Instanz angegeben werden. Eine weitere Instanz wurde auf dem SQL Server 2012 nicht angelegt! Die Verbindungen funktionieren auch aber es erscheint immer diese Fehlermeldung! kann jemand helfen?
  21. Also wenn ich das jetzt richtig verstehe könnte ich das Skript nutzen was NilsK (nochmals Danke) aufgezeigt hat und damit die Tabellen / Sichten und User auf dem Zielsystem anlegen! ein Import des Backup´s ist jedoch noch immer nicht möglich! das heißt ich müsste nun doch ein Routine schreiben (SSIS-Dtsx-Paket) welches die Daten vom 2012 auf 2008 schreibt. Im Visual Studio gibt es noch die Funktion Datenbank Backup für die Erstellung eines Dtsx paketes kann ich damit noch was machen oder gibt es noch einen anderen Weg?
  22. ich habe mal das Datenbanklevel kurz abgefragt das Level hat den Wert 100. Ich habe aber keine Ahnung was mir das sagt bzw. was das ist! kann jemand mir helfen? zu den Editionen das ist nicht mein Verschulden ich soll es nur korrigieren :cry:. Als Testumgebung hat man sich mal gedacht nehmen wir doch den neuesten Server (damals 2012) im Einsatz befindet sich aber der 2008
  23. genau das ist ja das Problem! ich habe es nicht hinbekommen ein Backup von Server 2012 in Server 2008 einzuspielen! deswegen suche ich ja auch nach einer lösung! ich habe im Task auf dem Server 2008 (Enterprise) die Funktion Datenbank kopieren. Leider fehlt mir die Funktion auf dem SQL Server Express 2012 könnte man hiermit noch was machen?
  24. so nun ist das Thema wieder aktuell! auf den SSIS bin ich nicht gekommen! manchmal sieht man den Wald vor lauter bäumen nicht! ich würde gerne die ganze DB inkl. der Sichten und der Systemsichten umziehen lassen. kann man das machen mit SSIS? Wie man gleiche Daten aus gleichen Datenbanken (auf System A und B angelegt) transferiert weiß ich aber geht das nicht einfach irgendwie die ganze db und deren Sichten und Systemsichten?
  25. Hallo an alle, ich habe ein Problem vor mir steht ein SQL Server 2012 Express dessen Datenbank soll nun auf einen SQL Server 2008 gelegt werden. Das ein downgrad nicht drin ist, ist mir bekannt. Soll heißen die Server 2012 DB kann nicht importiert werden auf Server 2008. aber gibt es vielleicht noch einen anderen Weg?
×
×
  • Neu erstellen...