Fügen Sie das von der Anwendung verwendete Konto in SQL Server hinzu
In früheren Kundenberatungsfällen verwendeten viele Kundenanwendungen direkt SA-Konten, um eine Verbindung zu SQL Server herzustellen. Wenn die Datenbankverwaltung etwas strenger ist, sollte der Anwendung diese Art von Berechtigung nicht erteilt werden. Normalerweise muss die Anwendung nur Hinzufügungen, Löschungen, Änderungen und Abfragen durchführen, jedoch selten DDL-Vorgänge. Daher gilt das Prinzip der „Zuweisung der geringsten Rechte“. " sollte beim Konfigurieren von Konten befolgt werden. Erteilen Sie die erforderlichen Berechtigungen.
Für Anwendungen werden in der Regel die Mindestberechtigungen Leseberechtigungen, Schreibberechtigungen und Ausführungsberechtigungen für gespeicherte Prozeduren erteilt. Um den Verlust von Datenbankinformationen durch SQL-Injection zu verhindern, müssen Sie auch darüber nachdenken, dem Konto die Berechtigung zum Anzeigen von Definitionen zu verweigern. Beachten Sie jedoch, dass das Masseneinfügen fehlschlägt, wenn die Berechtigung zum Anzeigen von Definitionen verweigert wird. Die vollständige Berechtigungsdefinition lautet wie folgt:
ALTER ROLE [db_datareader] ADD MEMBER 用户名 ALTER ROLE [db_datawriter] ADD MEMBER 用户名 grant execute to 用户名 deny view definition to 用户名
In SQL Server ist die Instanzebene der Anmeldename, während die Datenbankebene der Benutzername ist. Der Anmeldename kann nach der Erstellung einer bestimmten Bibliothek zugeordnet werden . Daher habe ich ein vollständiges Skript geschrieben, um Anmeldenamen und Benutzer zu erstellen und entsprechende Berechtigungen zu erteilen. Das Skript lautet wie folgt:
--创建用户的存储过程, --示例EXEC sp_CreateUser 'UserName','rw','DatabaseName' --EXEC sp_CreateUser 'tesefx','r','Test','0xE39CA97EBE03BB4CA5FF78E50374EEBB' CREATE PROC sp_CreateUser @loginName VARCHAR(50) , @IsWrite VarCHAR(3) , @DatabaseName VARCHAR(50), @Sid VARCHAR(100) ='1' AS PRINT('示例:EXEC sp_CreateUser ''UserName'',''rw'',''DatabaseName''') PRINT('示例:EXEC sp_CreateUser ''UserName'',''rwv'',''DatabaseName'',''0xE39CA97EBE03BB4CA5FF78E50374EEBB''') PRINT('r为只读权限,rw为读写权限,rwv为读写加View Definition权限') IF EXISTS ( SELECT name FROM sys.syslogins WHERE name = @loginName ) BEGIN PRINT N'登录名已存在,跳过创建登录名步骤' END ELSE BEGIN DECLARE @CreateLogin NVARCHAR(1000) DECLARE @pwd VARCHAR(50) PRINT @Sid SET @pwd=NEWID() IF(@sid='1') BEGIN SET @CreateLogin = 'CREATE LOGIN [' + @loginName + '] WITH PASSWORD=N''' + @Pwd + ''', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;' PRINT N'登录名已创建,密码为:'+@pwd END ELSE BEGIN SET @CreateLogin = 'CREATE LOGIN [' + @loginName + '] WITH PASSWORD=N''' + @Pwd + ''', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF,sid='+@Sid+';' PRINT N'已经使用SID创建登录名:'+@loginName END EXEC (@CreateLogin) --DECLARE @sidtemp NVARCHAR(50) --SELECT @sidtemp=sid FROM sys.server_principals WHERE name=@loginName --PRINT(N'登录名为:'+@loginName+N' SID为: 0x'+CONVERT(VARCHAR(50), @sidtemp, 2) ) END DECLARE @DynamicSQL NVARCHAR(1000) --切换数据库上下文 SET @DynamicSQL = N'Use [' + @DatabaseName + ']; ' + 'IF EXISTS(SELECT name FROM sys.database_principals WHERE name='''+@loginName+''') Begin Print(''用户名已存在,跳过创建用户名的步骤'') end else begin CREATE USER [' + @loginName + '] FOR LOGIN ' + @loginName + ' end;IF (''' + @IsWrite + '''=''rw'' or ''' + @IsWrite + '''=''rwv'') BEGIN ALTER ROLE [db_datareader] ADD MEMBER ' + @loginName + ';ALTER ROLE [db_datawriter] ADD MEMBER ' + @loginName + '; END ELSE BEGIN ALTER ROLE [db_datareader] ADD MEMBER ' + @loginName + '; ALTER ROLE db_datawriter DROP MEMBER ' + @loginName + ' ;End;grant execute to ' + @loginName + '; if('''+@IsWrite+'''<>''rwv'') begin deny view definition to ' + @loginName + '; end else begin grant view definition to ' + @loginName + '; end' EXEC (@DynamicSQL)
Diese gespeicherte Prozedur wird verwendet, um den Anmeldenamen zu erstellen, der für die Verbindung der Anwendung erforderlich ist zu SQL Server. Dieser Schritt wird übersprungen, wenn der Benutzer- oder Anmeldename vorhanden ist:
EXEC sp_CreateUser 'UserName','rw','DatabaseNam' EXEC sp_CreateUser 'tesefx','r','Test','0xE39CA97EBE03BB4CA5FF78E50374EEBB'
Die erste Zeile der obigen Ausführung ist Erstellen Sie ein Standardkonto. Der Kontoname UserName gewährt Lese- und Schreibberechtigungen für die DatabaseNam-Bibliothek und gibt das generierte GUID-Passwort zurück. Die zweite gespeicherte Prozedur verwendet den vierten Parameter „sid“, um einen Anmeldenamen zu erstellen. Da in AlwaysOn- oder Spiegelungsumgebungen die Anmeldenamen an beiden Enden dieselbe SID haben müssen, wird in diesem Fall eine Methode zum Erstellen eines Anmeldenamens mithilfe der SID bereitgestellt.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Microsoft SQL Server ist ein relationales Datenbankverwaltungssystem, das von Microsoft eingeführt wurde. Es handelt sich um eine umfassende Datenbankplattform, die integrierte Business-Intelligence-Tools (BI) verwendet, um eine Datenverwaltung auf Unternehmensebene zu ermöglichen Grad der Integration mit verwandter Software. Die SQL Server-Datenbank-Engine bietet sicherere und zuverlässigere Speicherfunktionen für relationale Daten und strukturierte Daten und ermöglicht es Benutzern, hochverfügbare und leistungsstarke Datenanwendungen für Unternehmen zu erstellen und zu verwalten.

SQLServer oder MySQL? Die neueste Forschung zeigt die beste Datenbankauswahl. Mit der rasanten Entwicklung des Internets und Big Data ist die Datenbankauswahl zu einem wichtigen Thema für Unternehmen und Entwickler geworden. Unter vielen Datenbanken sind SQL Server und MySQL als die beiden am weitesten verbreiteten und am weitesten verbreiteten relationalen Datenbanken äußerst umstritten. Welches sollten Sie also zwischen SQLServer und MySQL wählen? Die neuesten Forschungsergebnisse bringen für uns Licht in dieses Problem. Lassen Sie zunächst

Mit der Popularität des Internets ist die Entwicklung von Websites und Anwendungen zum Hauptgeschäft vieler Unternehmen und Einzelpersonen geworden. PHP und SQLServer-Datenbank sind zwei sehr wichtige Tools. PHP ist eine serverseitige Skriptsprache, mit der dynamische Websites entwickelt werden können. SQL Server ist ein von Microsoft entwickeltes relationales Datenbankverwaltungssystem mit vielfältigen Anwendungsszenarien. In diesem Artikel besprechen wir die Entwicklung von PHP und SQL Server sowie deren Vor- und Nachteile sowie Anwendungsmethoden. Lassen Sie uns zunächst einmal

Einführung in die Verwendung von PDO zum Herstellen einer Verbindung zu einer Microsoft SQL Server-Datenbank: PDO (PHPDataObjects) ist eine einheitliche Schnittstelle für den Zugriff auf von PHP bereitgestellte Datenbanken. Es bietet viele Vorteile, wie z. B. die Implementierung einer Abstraktionsschicht der Datenbank und die Erleichterung des Wechsels zwischen verschiedenen Datenbanktypen, ohne große Codemengen ändern zu müssen. In diesem Artikel wird erläutert, wie Sie mit PDO eine Verbindung zu einer Microsoft SQL Server-Datenbank herstellen, und es werden einige zugehörige Codebeispiele bereitgestellt. Schritt

In der Webentwicklung ist die Kombination von PHP und MySQL sehr verbreitet. In einigen Fällen müssen wir jedoch eine Verbindung zu anderen Datenbanktypen herstellen, beispielsweise zu SQL Server. In diesem Artikel behandeln wir fünf verschiedene Möglichkeiten, mit PHP eine Verbindung zu SQL Server herzustellen.

SQL Server vs. MySQL: Welche Datenbank eignet sich besser für eine Hochverfügbarkeitsarchitektur? In der heutigen datengesteuerten Welt ist hohe Verfügbarkeit eine der notwendigen Voraussetzungen für den Aufbau zuverlässiger und stabiler Systeme. Als Kernkomponente der Datenspeicherung und -verwaltung ist die hohe Verfügbarkeit der Datenbank für den Geschäftsbetrieb des Unternehmens von entscheidender Bedeutung. Unter den vielen Datenbanken sind SQLServer und MySQL die gängige Wahl. Welche Datenbank ist im Hinblick auf eine Hochverfügbarkeitsarchitektur besser geeignet? In diesem Artikel werden die beiden verglichen und einige Vorschläge gemacht.

Mit der kontinuierlichen Entwicklung des Internets hat die Datenbankauswahl immer mehr an Bedeutung gewonnen. Unter den vielen Datenbanken sind SQLServer und MySQL zwei hochkarätige Optionen. SQLServer ist ein von Microsoft entwickeltes relationales Datenbankverwaltungssystem, während MySQL ein relationales Open-Source-Datenbankverwaltungssystem ist. Wie wählt man also die beste Datenbanklösung zwischen SQLServer und MySQL aus? Zunächst können wir diese beiden Datenbanken hinsichtlich der Leistung vergleichen. SQLServer verarbeitet

SQLServer vs. MySQL: Was ist besser für die Entwicklung mobiler Apps? Mit der rasanten Entwicklung des Marktes für mobile Anwendungen wird es für Entwickler immer wichtiger, ein Datenbankverwaltungssystem auszuwählen, das für die Entwicklung mobiler Anwendungen geeignet ist. Unter den vielen Möglichkeiten sind SQLServer und MySQL zwei von Entwicklern bevorzugte Datenbanksysteme. Dieser Artikel konzentriert sich auf den Vergleich dieser beiden Datenbanksysteme, um festzustellen, welches für die Entwicklung mobiler Anwendungen besser geeignet ist, und zeigt ihre Unterschiede anhand von Codebeispielen auf. SQLServer ist Microsoft
