309 lines
11 KiB
Transact-SQL

ALTER TABLE TBDD_BASECONFIG ADD WM_DRIVE VARCHAR(1) NOT NULL DEFAULT 'W'
GO
ALTER TABLE TBDD_BASECONFIG ADD DB_VERSION VARCHAR(10) NOT NULL DEFAULT '1.1'
GO
ALTER TABLE TBDD_USER ADD DELETED BIT NOT NULL DEFAULT 0
GO
ALTER TABLE TBDD_USER ADD DELETED_WHEN DATETIME
GO
ALTER TABLE TBDD_USER ADD DELETED_WHO DATETIME
GO
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.1'
GO
ALTER TABLE TBDD_MODULES ADD SHORT_NAME VARCHAR(10)
GO
if not exists (select * from sysobjects where name='TBDD_CLIENT' and xtype='U')
CREATE TABLE TBDD_CLIENT
(
GUID INTEGER IDENTITY(1,1),
CLIENT_NAME VARCHAR(50) NOT NULL UNIQUE,
SHORTNAME VARCHAR(30),
LICENSE_PMO VARCHAR(5000) NOT NULL DEFAULT '',
LICENSE_GI VARCHAR(5000) NOT NULL DEFAULT '',
LICENSE_PM VARCHAR(5000) NOT NULL DEFAULT '',
COMMENT VARCHAR(200),
ADDED_WHO VARCHAR(50) DEFAULT 'DEFAULT' NOT NULL,
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBDD_CLIENT PRIMARY KEY (GUID)
)
GO
INSERT INTO TBDD_CLIENT(CLIENT_NAME,SHORTNAME) VALUES
('DEFAULT','DEF')
GO
CREATE TRIGGER TBDD_CLIENT_AFT_UPD ON TBDD_CLIENT
FOR UPDATE
AS
BEGIN
UPDATE TBDD_CLIENT SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBDD_CLIENT.GUID = INSERTED.GUID
END
if not exists (select * from sysobjects where name='TBDD_USER_MODULES' and xtype='U')
CREATE TABLE TBDD_USER_MODULES
(
GUID INTEGER IDENTITY(1,1),
[USER_ID] INT NOT NULL,
MODULE_ID INT NOT NULL,
IS_ADMIN BIT NOT NULL DEFAULT 0,
RIGHT1 BIT NOT NULL DEFAULT 0,
RIGHT2 BIT NOT NULL DEFAULT 0,
RIGHT3 BIT NOT NULL DEFAULT 0,
RIGHT4 BIT NOT NULL DEFAULT 0,
COMMENT VARCHAR(200),
ADDED_WHO VARCHAR(50) DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME ,
CONSTRAINT PK_TBDD_USER_MODULES PRIMARY KEY (GUID),
CONSTRAINT UQ_TBDD_USER_MODULES UNIQUE([USER_ID],MODULE_ID),
CONSTRAINT FK_TBDD_USER_MODULES_MODULE_ID FOREIGN KEY(MODULE_ID) REFERENCES TBDD_MODULES(GUID),
CONSTRAINT FK_TBDD_USER_MODULES2_USER_ID FOREIGN KEY([USER_ID]) REFERENCES TBDD_USER(GUID),
)
GO
ALTER TABLE TBDD_USER_MODULES ADD IS_ADMIN BIT NOT NULL DEFAULT 0
GO
ALTER TABLE TBDD_USER_MODULES ADD RIGHT1 BIT NOT NULL DEFAULT 0
GO
ALTER TABLE TBDD_USER_MODULES ADD RIGHT2 BIT NOT NULL DEFAULT 0
GO
ALTER TABLE TBDD_USER_MODULES ADD RIGHT3 BIT NOT NULL DEFAULT 0
GO
if not exists (select * from sysobjects where name='TBDD_GROUPS' and xtype='U')
CREATE TABLE TBDD_GROUPS
(
GUID INTEGER IDENTITY(1,1),
NAME VARCHAR(50),
ECM_FK_ID INTEGER NOT NULL DEFAULT 0,
AD_SYNC BIT NOT NULL DEFAULT 0,
INTERNAL BIT NOT NULL DEFAULT 0,
ACTIVE BIT NOT NULL DEFAULT 1,
COMMENT VARCHAR(200),
ADDED_WHO VARCHAR(50) DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBDD_GROUPS PRIMARY KEY (GUID),
CONSTRAINT UQ_TBDD_GROUPS UNIQUE(NAME)
)
GO
CREATE TRIGGER TBDD_GROUPS_AFT_UPD ON TBDD_GROUPS
FOR UPDATE
AS
UPDATE TBDD_GROUPS SET CHANGED_WHEN = GETDATE() FROM INSERTED
WHERE TBDD_GROUPS.GUID = INSERTED.GUID
GO
INSERT INTO TBDD_GROUPS (NAME,INTERNAL) VALUES ('PM_USER',1)
GO
INSERT INTO TBDD_GROUPS (NAME,INTERNAL) VALUES ('PM_ADMINS',1)
GO
INSERT INTO TBDD_GROUPS (NAME,INTERNAL) VALUES ('GLOBIX_USER',1)
GO
INSERT INTO TBDD_GROUPS (NAME,INTERNAL) VALUES ('GLOBIX_ADMINS',1)
GO
INSERT INTO TBDD_GROUPS (NAME,INTERNAL) VALUES ('ADDI_USER',1)
GO
INSERT INTO TBDD_GROUPS (NAME,INTERNAL) VALUES ('ADDI_ADMINS',1)
GO
INSERT INTO TBDD_GROUPS (NAME,INTERNAL) VALUES ('CW_USER',1)
GO
INSERT INTO TBDD_GROUPS (NAME,INTERNAL) VALUES ('CW_ADMINS',1)
GO
INSERT INTO TBDD_GROUPS (NAME,INTERNAL) VALUES ('UM_ADMINS',1)
GO
if not exists (select * from sysobjects where name='TBDD_GROUPS_MODULES' and xtype='U')
CREATE TABLE TBDD_GROUPS_MODULES
(
GUID INTEGER IDENTITY(1,1),
MODULE_ID INT NOT NULL,
GROUP_ID INT NOT NULL,
COMMENT VARCHAR(200),
ADDED_WHO VARCHAR(50) DEFAULT 'DEFAULT' NOT NULL,
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBDD_GROUPS_MODULES PRIMARY KEY (GUID),
CONSTRAINT UC_MODULE_GROUP UNIQUE (MODULE_ID,GROUP_ID),
CONSTRAINT FK_TBDD_GROUPS_MODULES_GROUP_ID FOREIGN KEY(GROUP_ID) REFERENCES TBDD_GROUPS(GUID),
CONSTRAINT FK_TBDD_GROUPS_MODULES_MODULE_ID FOREIGN KEY(MODULE_ID) REFERENCES TBDD_MODULES(GUID),
)
GO
if not exists (select * from sysobjects where name='TBDD_GROUPS_CLIENT' and xtype='U')
CREATE TABLE TBDD_GROUPS_CLIENT
(
GUID INTEGER IDENTITY(1,1),
CLIENT_ID INT NOT NULL,
GROUP_ID INT NOT NULL,
COMMENT VARCHAR(200),
ADDED_WHO VARCHAR(50) DEFAULT 'DEFAULT' NOT NULL,
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBDD_GROUPS_CLIENT PRIMARY KEY (GUID),
CONSTRAINT UC_CLIENT_GROUP UNIQUE (CLIENT_ID,GROUP_ID),
CONSTRAINT FK_TBDD_GROUPS_CLIENT_GROUP_ID FOREIGN KEY(GROUP_ID) REFERENCES TBDD_GROUPS(GUID),
CONSTRAINT FK_TBDD_GROUPS_CLIENT_CLIENT_ID FOREIGN KEY(CLIENT_ID) REFERENCES TBDD_CLIENT(GUID),
)
GO
if not exists (select * from sysobjects where name='TBDD_GROUPS_USER' and xtype='U')
CREATE TABLE TBDD_GROUPS_USER
(
GUID INTEGER IDENTITY(1,1),
[USER_ID] INT NOT NULL,
GROUP_ID INT NOT NULL,
COMMENT VARCHAR(200),
ADDED_WHO VARCHAR(50) DEFAULT 'DEFAULT' NOT NULL,
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CHANGED_WHO VARCHAR(50),
CHANGED_WHEN DATETIME,
CONSTRAINT PK_TBDD_GROUPS_USER PRIMARY KEY (GUID),
CONSTRAINT UC_USER_GROUP UNIQUE (USER_ID,GROUP_ID),
CONSTRAINT FK_TBDD_GROUPS_USER_GROUP_ID FOREIGN KEY(GROUP_ID) REFERENCES TBDD_GROUPS(GUID),
CONSTRAINT FK_TBDD_GROUPS_USER_USER_ID FOREIGN KEY([USER_ID]) REFERENCES TBDD_USER(GUID),
)
GO
if not exists (select * from sysobjects where name='TBDD_CLIENT_GROUP' and xtype='U')
CREATE TABLE TBDD_CLIENT_GROUP
(
GUID INTEGER IDENTITY(1,1),
[GROUP_ID] INT NOT NULL,
CLIENT_ID INT NOT NULL,
COMMENT VARCHAR(200),
ADDED_WHO VARCHAR(50) DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CONSTRAINT PK_TBDD_CLIENT_GROUP PRIMARY KEY (GUID),
CONSTRAINT FK_TBDD_CLIENT_GROUP_GROUP_ID FOREIGN KEY(GROUP_ID) REFERENCES TBDD_GROUPS(GUID),
CONSTRAINT FK_TBDD_CLIENT_GROUP_CLIENT_ID FOREIGN KEY(CLIENT_ID) REFERENCES TBDD_CLIENT(GUID),
)
GO
if not exists (select * from sysobjects where name='TBDD_CLIENT_USER' and xtype='U')
CREATE TABLE TBDD_CLIENT_USER
(
GUID INTEGER IDENTITY(1,1),
[USER_ID] INT NOT NULL,
CLIENT_ID INT NOT NULL,
COMMENT VARCHAR(200),
ADDED_WHO VARCHAR(50) DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CONSTRAINT PK_TBDD_CLIENT_USER PRIMARY KEY (GUID),
CONSTRAINT FK_TBDD_CLIENT_USER_GROUP_ID FOREIGN KEY(CLIENT_ID) REFERENCES TBDD_CLIENT(GUID),
CONSTRAINT FK_TBDD_CLIENT_USER_USER_ID FOREIGN KEY([USER_ID]) REFERENCES TBDD_USER(GUID),
)
GO
CREATE TABLE TBDD_CLIENT_GROUP
(
GUID INTEGER IDENTITY(1,1),
[GROUP_ID] INT NOT NULL,
CLIENT_ID INT NOT NULL,
COMMENT VARCHAR(200),
ADDED_WHO VARCHAR(50) DEFAULT 'DEFAULT',
ADDED_WHEN DATETIME DEFAULT GETDATE(),
CONSTRAINT PK_TBDD_CLIENT_GROUP PRIMARY KEY (GUID),
CONSTRAINT FK_TBDD_CLIENT_GROUP_GROUP_ID FOREIGN KEY(GROUP_ID) REFERENCES TBDD_GROUPS(GUID),
CONSTRAINT FK_TBDD_CLIENT_GROUP_CLIENT_ID FOREIGN KEY(CLIENT_ID) REFERENCES TBDD_CLIENT(GUID),
)
GO
if not exists (select * from sysobjects where name='TBDD_USER_LOGIN_OUT' and xtype='U')
CREATE TABLE TBDD_USER_LOGIN_OUT(
GUID INT IDENTITY(1,1) NOT NULL,
CONNECTION_STRING VARCHAR(500) NOT NULL DEFAULT '',
CLIENT_ID INT NOT NULL,
MACHINE_NAME VARCHAR(250) NOT NULL DEFAULT '',
MODULE VARCHAR(30) NOT NULL,
[USER_ID] INT NOT NULL,
VERSION_CLIENT VARCHAR(30),
[LOGIN] DATETIME DEFAULT (GETDATE()),
[LOGOUT] DATETIME,
CONSTRAINT [PK_TBDD_USER_LOGIN_OUT] PRIMARY KEY(GUID),
CONSTRAINT FK_TBDD_USER_LOGIN_OUT_USER_ID FOREIGN KEY ([USER_ID]) REFERENCES TBDD_USER (GUID))
GO
DROP TABLE TBDD_USER_MODULE_LOG_IN
GO
CREATE TABLE TBDD_USER_MODULE_LOG_IN
(
GUID INTEGER IDENTITY(1,1),
CLIENT_ID INTEGER NOT NULL,
CONNECTION_STRING VARCHAR(500) NOT NULL DEFAULT '' ,
USER_ID INTEGER NOT NULL,
MACHINE_NAME VARCHAR(250) NOT NULL DEFAULT '',
MODULE VARCHAR(50),
VERSION_CLIENT VARCHAR(30),
ADDED_WHEN DATETIME DEFAULT GETDATE() NOT NULL,
CONSTRAINT PK_TBDD_USER_MODULE_LOG_IN PRIMARY KEY (GUID)
)
GO
CREATE TRIGGER TBDD_USER_MODULE_LOG_IN_AFT_INS ON TBDD_USER_MODULE_LOG_IN
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN TRY
DECLARE
@USER_ID INTEGER,
@MODULE VARCHAR(50),
@CLIENT_ID INTEGER,
@VERSION_CLIENT VARCHAR(30),
@MACHINE_NAME VARCHAR(50),
@CONNECTION_STRING VARCHAR(500)
SELECT
@USER_ID = USER_ID,
@MODULE = MODULE,
@CLIENT_ID = CLIENT_ID,
@VERSION_CLIENT = VERSION_CLIENT,
@MACHINE_NAME = MACHINE_NAME,
@CONNECTION_STRING = CONNECTION_STRING
FROM INSERTED
IF @VERSION_CLIENT IS NULL
SET @VERSION_CLIENT = '1.0.0.0'
INSERT INTO TBDD_USER_LOGIN_OUT (MODULE,USER_ID,CLIENT_ID,VERSION_CLIENT,MACHINE_NAME,CONNECTION_STRING) VALUES (@MODULE,@USER_ID,@CLIENT_ID,@VERSION_CLIENT,@MACHINE_NAME,@CONNECTION_STRING)
END TRY
BEGIN CATCH
PRINT 'FEHLER IN TRIGGER: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE()) + ' - ZEILE: ' + CONVERT(VARCHAR(10),ERROR_LINE())
+ ' - FEHLER-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
CREATE TRIGGER TBDD_USER_MODULE_LOG_IN_AFT_DEL ON TBDD_USER_MODULE_LOG_IN
FOR DELETE
AS
BEGIN TRY
DECLARE
@USER_ID INTEGER,
@MODULE VARCHAR(50),
@CLIENT_ID INTEGER
SELECT
@USER_ID = USER_ID,
@MODULE = MODULE,
@CLIENT_ID = CLIENT_ID
FROM DELETED
UPDATE TBDD_USER_LOGIN_OUT SET LOGOUT = GETDATE() WHERE GUID = (
SELECT MAX(GUID) FROM TBDD_USER_LOGIN_OUT WHERE USER_ID = @USER_ID AND MODULE = @MODULE AND CLIENT_ID = @CLIENT_ID)
END TRY
BEGIN CATCH
PRINT 'ERROR IN PROCEDURE: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
+ ' - ERROR-MESSAGE: '
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
END CATCH
GO
ALTER VIEW [dbo].[VWDD_USER2GROUP] AS
SELECT TOP 100 PERCENT T.GUID, T.USERNAME, T2.GUID as GROUP_ID, T2.NAME, T2.COMMENT
FROM TBDD_USER T, TBDD_GROUPS_USER T1, TBDD_GROUPS T2
WHERE
T.GUID = T1.USER_ID AND
T1.GROUP_ID = T2.GUID
ORDER BY T.USERNAME
GO