309 lines
11 KiB
Transact-SQL
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 |