Untitled
unknown
sqlserver
a year ago
3.0 kB
4
Indexable
Never
-- Létrehozzuk az adatbázist CREATE DATABASE IfiFociBajnoksag; -- Váltunk az új adatbázis kontextusába USE IfiFociBajnoksag; -- Létrehozzuk a csapatok tábláját CREATE TABLE Csapatok ( CsapatID INT PRIMARY KEY, Nev NVARCHAR(255), Szekhely NVARCHAR(255) ); -- Létrehozzuk a játékosok tábláját CREATE TABLE Jatekosok ( JatekosID INT PRIMARY KEY, Nev NVARCHAR(255), CsapatID INT, FOREIGN KEY (CsapatID) REFERENCES Csapatok(CsapatID) ); -- Létrehozzuk a meccsek tábláját CREATE TABLE Meccsek ( MeccsID INT PRIMARY KEY, Datum DATETIME, Eredmeny NVARCHAR(255) ); -- Létrehozzuk a meccs események tábláját CREATE TABLE MeccsEsemenyek ( EsemenyID INT PRIMARY KEY, MeccsID INT, Leiras NVARCHAR(255), Idopont DATETIME, FOREIGN KEY (MeccsID) REFERENCES Meccsek(MeccsID) ); -- Létrehozzuk a szerepeket CREATE ROLE Edzo; CREATE ROLE Jatekvezeto; CREATE ROLE MLSzEllenor; -- Létrehozzuk a logint és az adatbázis-felhasználót az edző szerep számára CREATE LOGIN EdzoLogin WITH PASSWORD = 'EdzoJelszo'; CREATE USER EdzoUser FOR LOGIN EdzoLogin; ALTER ROLE Edzo ADD MEMBER EdzoUser; -- Létrehozzuk a logint és az adatbázis-felhasználót a játékvezető szerep számára CREATE LOGIN JatekvezetoLogin WITH PASSWORD = 'JatekvezetoJelszo'; CREATE USER JatekvezetoUser FOR LOGIN JatekvezetoLogin; ALTER ROLE Jatekvezeto ADD MEMBER JatekvezetoUser; -- Létrehozzuk a logint és az adatbázis-felhasználót az MLSz ellenőre számára CREATE LOGIN MLSzEllenorLogin WITH PASSWORD = 'MLSzEllenorJelszo'; CREATE USER MLSzEllenorUser FOR LOGIN MLSzEllenorLogin; ALTER ROLE MLSzEllenor ADD MEMBER MLSzEllenorUser; -- Beszúrunk néhány demo rekordot a csapatok táblájába INSERT INTO Csapatok (CsapatID, Nev, Szekhely) VALUES (1, 'Csapat A', 'Szekhely A'), (2, 'Csapat B', 'Szekhely B'); -- Ellenőrizzük az edző, játékvezető és MLSz ellenőr jogosultságait -- Példa: Az alábbi GRANT és DENY parancsokkal részletesen beállíthatjuk a jogosultságokat -- Edző szerep jogosultságai GRANT SELECT ON Csapatok TO Edzo; GRANT SELECT ON Jatekosok TO Edzo; GRANT SELECT ON Meccsek TO Edzo; GRANT SELECT ON MeccsEsemenyek TO Edzo; -- Játékvezető szerep jogosultságai GRANT INSERT, UPDATE, DELETE ON MeccsEsemenyek TO Jatekvezeto; -- MLSz ellenőr szerep jogosultságai GRANT SELECT, INSERT, UPDATE, DELETE ON Csapatok TO MLSzEllenor; GRANT SELECT, INSERT, UPDATE, DELETE ON Jatekosok TO MLSzEllenor; GRANT SELECT, INSERT, UPDATE, DELETE ON Meccsek TO MLSzEllenor; GRANT SELECT, INSERT, UPDATE, DELETE ON MeccsEsemenyek TO MLSzEllenor; -- Javasolt indexek a táblákhoz a hatékony lekérdezések érdekében -- Példa: Csapatok táblához index a CsapatID oszlopra CREATE INDEX idx_Csapatok_CsapatID ON Csapatok (CsapatID); -- A további indexeket hasonlóan hozhatjuk létre a lekérdezésekhez szükséges módon -- A script befejezése