Untitled

mail@pastecode.io avatar
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