Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
470
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 11.91 KB | None | 0 0
  1. DROP DATABASE admin;
  2. DROP ROLE dummyuser;
  3.  
  4. CREATE DATABASE admin;
  5.  
  6. CREATE ROLE dummyuser WITH PASSWORD 'dummypassword' NOCREATEDB NOCREATEUSER;
  7. ALTER USER dummyuser WITH LOGIN;
  8. GRANT ALL ON DATABASE admin TO dummyuser;
  9.  
  10. \c admin;
  11.  
  12. ---------------------
  13. -- SCHEMA accounts
  14. ---------------------
  15. CREATE SCHEMA accounts;
  16.  
  17. CREATE TABLE accounts.users (
  18.                             username VARCHAR(80) PRIMARY KEY,
  19.                             password VARCHAR(40) NOT NULL,
  20.                             active BOOLEAN NOT NULL DEFAULT TRUE
  21.                             );
  22.  
  23. CREATE TABLE accounts.userdetails (
  24.                                 username VARCHAR(80) PRIMARY KEY REFERENCES accounts.users,
  25.                                 firstname VARCHAR(128) NULL,
  26.                                 admin BOOLEAN NOT NULL DEFAULT FALSE,
  27.                                 name VARCHAR(128) NULL,
  28.                                 gender VARCHAR(10) NULL,
  29.                                 password_before1 VARCHAR(40) NULL,
  30.                                 password_before2 VARCHAR(40) NULL,
  31.                                 password_before3 VARCHAR(40) NULL,
  32.                                 street VARCHAR(128) NULL,
  33.                                 house VARCHAR(10) NULL,
  34.                                 city VARCHAR(128) NULL,
  35.                                 zip VARCHAR(12) NULL,
  36.                                 phone VARCHAR(128) NULL,
  37.                                 mobile VARCHAR(128) NULL,
  38.                                 fax VARCHAR(128) NULL,
  39.                                 email VARCHAR(128) NOT NULL,
  40.                                 email2 VARCHAR(128) NULL,
  41.                                 birthday VARCHAR(128) NULL,
  42.                                 last_login TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
  43.                                 changed_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  44.                                 changed TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
  45.                                 added_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  46.                                 added TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
  47.                                 );
  48.  
  49. CREATE TABLE accounts.permission (
  50.                                 name VARCHAR(80) PRIMARY KEY,
  51.                                 menu_order INTEGER NOT NULL DEFAULT 0
  52.                                 );
  53.  
  54. CREATE TABLE accounts.permissions (
  55.                                 username VARCHAR(80) REFERENCES accounts.users,
  56.                                 permission VARCHAR(80) REFERENCES accounts.permission,
  57.                                 added_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  58.                                 added TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
  59.                                 );
  60.  
  61. GRANT ALL ON SCHEMA accounts TO dummyuser;
  62. GRANT ALL ON TABLE accounts.users TO dummyuser;
  63. GRANT ALL ON TABLE accounts.userdetails TO dummyuser;
  64. GRANT ALL ON TABLE accounts.permission TO dummyuser;
  65. GRANT ALL ON TABLE accounts.permissions TO dummyuser;
  66.  
  67. ---------------------
  68. -- SCHEMA domains
  69. ---------------------
  70. CREATE SCHEMA domains;
  71.  
  72. CREATE TABLE domains.domains (
  73.                             DOMAIN VARCHAR(128) PRIMARY KEY,
  74.                             active BOOLEAN NOT NULL DEFAULT TRUE,
  75.                             public_vhost BOOLEAN NOT NULL DEFAULT FALSE,
  76.                             public_mail BOOLEAN NOT NULL DEFAULT FALSE,
  77.                             changed_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  78.                             changed TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
  79.                             owned_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  80.                             added_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  81.                             added TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
  82.                             );
  83.  
  84. CREATE TABLE domains.subdomains (
  85.                             DOMAIN VARCHAR(128) PRIMARY KEY,
  86.                             active BOOLEAN NOT NULL DEFAULT TRUE,
  87.                             rootdomain VARCHAR(128) REFERENCES domains.domains NOT NULL,
  88.                             changed_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  89.                             changed TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
  90.                             owned_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  91.                             added_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  92.                             added TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
  93.                             );
  94.  
  95. GRANT ALL ON SCHEMA domains TO dummyuser;
  96. GRANT ALL ON TABLE domains.domains TO dummyuser;
  97. GRANT ALL ON TABLE domains.subdomains TO dummyuser;
  98.  
  99. GRANT USAGE ON SCHEMA domains TO postfix;
  100. GRANT SELECT ON TABLE domains.domains TO postfix;
  101. GRANT SELECT ON TABLE domains.subdomains TO postfix;
  102.  
  103. ---------------------
  104. -- SCHEMA email
  105. ---------------------
  106. CREATE SCHEMA email;
  107.  
  108. CREATE TABLE email.mailboxes (
  109.                             address VARCHAR(80) PRIMARY KEY,
  110.                             password VARCHAR(40) NOT NULL,
  111.                             active BOOLEAN NOT NULL DEFAULT TRUE,
  112.                             maildir VARCHAR(255) NOT NULL,
  113.                             quota INTEGER NOT NULL DEFAULT 0,
  114.                             last_changed TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
  115.                             owned_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  116.                             added_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  117.                             added TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
  118.                             );
  119.  
  120. CREATE TABLE email.forwardings (
  121.                                 SOURCE VARCHAR(128),
  122.                                 target VARCHAR(128),
  123.                                 active BOOLEAN NOT NULL DEFAULT TRUE,
  124.                                 changed_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  125.                                 changed TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
  126.                                 owned_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  127.                                 added_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  128.                                 added TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
  129.                             );
  130.  
  131. GRANT ALL ON SCHEMA email TO dummyuser;
  132. GRANT ALL ON TABLE email.mailboxes TO dummyuser;
  133. GRANT ALL ON TABLE email.forwardings TO dummyuser;
  134.  
  135. GRANT USAGE ON SCHEMA email TO postfix;
  136. GRANT SELECT ON TABLE email.mailboxes TO postfix;
  137. GRANT SELECT ON TABLE email.forwardings TO postfix;
  138.  
  139. ---------------------
  140. -- SCHEMA server
  141. ---------------------
  142. CREATE SCHEMA server;
  143.  
  144. CREATE TABLE server.webconfig (
  145.                             servername VARCHAR(128),
  146.                             DOMAIN VARCHAR(128),
  147.                             active BOOLEAN NOT NULL DEFAULT TRUE,
  148.                             administrator VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  149.                             changed_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  150.                             changed TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
  151.                             );
  152.  
  153. CREATE TABLE server.news (
  154.                         id serial PRIMARY KEY,
  155.                         headline VARCHAR(128) NOT NULL,
  156.                         content text NOT NULL,
  157.                         added_by VARCHAR(80) REFERENCES accounts.users NOT NULL DEFAULT 'system',
  158.                         added TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
  159.                         );
  160.  
  161. GRANT ALL ON SCHEMA server TO dummyuser;
  162. GRANT ALL ON TABLE server.webconfig TO dummyuser;
  163. GRANT ALL ON TABLE server.news TO dummyuser;
  164. GRANT ALL ON server.news_id_seq TO dummyuser;
  165.  
  166.  
  167.  
  168. -- FILL UP --
  169. INSERT INTO accounts.users (username,password) VALUES ('system','50dbc4eXXXXXXXXXXXXXXXXXXXXXXXXXXXX4fc7d');
  170. INSERT INTO accounts.userdetails (username,email,admin) VALUES ('system','simon.codingmonkey@googlemail.com',TRUE);
  171. INSERT INTO server.webconfig (servername,DOMAIN) VALUES ('psaux','psaux.de');
  172.  
  173. INSERT INTO accounts.permission VALUES ('news',0);
  174. INSERT INTO accounts.permission VALUES ('email',1);
  175. INSERT INTO accounts.permission VALUES ('webserver',2);
  176. INSERT INTO accounts.permission VALUES ('fileserver',10);
  177. INSERT INTO accounts.permission VALUES ('vpn',20);
  178. INSERT INTO accounts.permission VALUES ('settings',98);
  179. INSERT INTO accounts.permission VALUES ('admin',99);
  180. INSERT INTO accounts.permission VALUES ('logout',100);
  181.  
  182. INSERT INTO accounts.users (username,password) VALUES ('simon','50dbc4e57736a20c20547ccc72b815f6f4d4fc7d');
  183. INSERT INTO accounts.userdetails (username,email) VALUES ('simon','simon.codingmonkey@googlemail.com');
  184. INSERT INTO accounts.users (username,password) VALUES ('sebbo','50dbc4e57736a20c20547ccc72b815f6f4d4fc7d');
  185. INSERT INTO accounts.userdetails (username,email) VALUES ('sebbo','sebbo@codingmonkey.de');
  186. INSERT INTO accounts.users (username,password) VALUES ('mutti','50dbc4e57736a20c20547ccc72b815f6f4d4fc7d');
  187. INSERT INTO accounts.userdetails (username,email) VALUES ('mutti','barbara@psaux.de');
  188. INSERT INTO accounts.users (username,password) VALUES ('fly','50dbc4e57736a20c20547ccc72b815f6f4d4fc7d');
  189. INSERT INTO accounts.userdetails (username,email) VALUES ('fly','fly@psaux.de');
  190. INSERT INTO accounts.users (username,password) VALUES ('exi','50dbc4e57736a20c20547ccc72b815f6f4d4fc7d');
  191. INSERT INTO accounts.userdetails (username,email) VALUES ('exi','exi@psaux.de');
  192.  
  193. INSERT INTO domains.domains (DOMAIN,public_mail,public_vhost,owned_by) VALUES ('psaux.de',TRUE,TRUE,'simon');
  194. INSERT INTO domains.domains (DOMAIN,public_mail,public_vhost,owned_by) VALUES ('geekhome.org',TRUE,TRUE,'simon');
  195. INSERT INTO domains.domains (DOMAIN,public_mail,public_vhost,owned_by) VALUES ('dance-different.de',TRUE,TRUE,'simon');
  196. INSERT INTO domains.domains (DOMAIN,public_mail,public_vhost,owned_by) VALUES ('mvs-verlag.de',FALSE,FALSE,'simon');
  197. INSERT INTO domains.domains (DOMAIN,public_mail,public_vhost,owned_by) VALUES ('twitsurvey.de',TRUE,TRUE,'simon');
  198. INSERT INTO domains.domains (DOMAIN,public_mail,public_vhost,owned_by) VALUES ('static.145.102.40.188.clients.your-server.de',FALSE,FALSE,'simon');
  199.  
  200. INSERT INTO domains.subdomains (DOMAIN,rootdomain,owned_by) VALUES ('admin.psaux.de','psaux.de','simon');
  201. INSERT INTO domains.subdomains (DOMAIN,rootdomain,owned_by) VALUES ('simon.psaux.de','psaux.de','simon');
  202. INSERT INTO domains.subdomains (DOMAIN,rootdomain,owned_by) VALUES ('mail.psaux.de','psaux.de','simon');
  203. INSERT INTO domains.subdomains (DOMAIN,rootdomain,owned_by) VALUES ('git.psaux.de','psaux.de','simon');
  204.  
  205. INSERT INTO email.mailboxes (address,password,maildir,owned_by) VALUES ('simon@psaux.de','50dbc4e57736a20c20547ccc72b815f6f4d4fc7d','simon@psaux.de/','simon');
  206.  
  207. INSERT INTO accounts.permissions VALUES ('simon','news');
  208. INSERT INTO accounts.permissions VALUES ('simon','email');
  209. INSERT INTO accounts.permissions VALUES ('simon','vpn');
  210. INSERT INTO accounts.permissions VALUES ('simon','settings');
  211. INSERT INTO accounts.permissions VALUES ('simon','admin');
  212. INSERT INTO accounts.permissions VALUES ('simon','logout');
  213.  
  214. INSERT INTO server.news (content,headline,added_by) VALUES ('Hallo liebe user, ich hoffe ihr fühlt euch auf meinem Server wohl. Damit es noch ein bisschen flauschiger wird, habe ich endlich mal ein webfrontend gestrickt.<br/><br/>gruß simon','First Post!','simon');
  215. INSERT INTO server.news (content,headline,added_by) VALUES ('Hi,<br/>Ich habe mal ein paar neue Services aufgesetzt. Guckt einfach mal auf der "Services" Seite vorbei.<br/><br/>gruß simon','New Services!','simon');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement