Lab baze de date 2

12
Laborator 2 - SGBD ORACLE _____________________________________________ Universitatea “Dunarea de Jos” Galati Lect. dr. Mihai Gianina II. Crearea utilizatorilor, a rolurilor, acordare şi revocare de drepturi Implicit, la instalare, ORACLE creează trei utilizatori: SYS, SYSTEM şi SYSMAN care sunt utilizaţi pentru conectarea iniţială la sistem şi care au drepturi de administrator asupra sistemului şi asupra bazei de date. Parola de conectare pentru aceşti utilizatori se stabileşte la instalare. Utilizatorul SYSMAN este utilizat pentru conectarea la Enterprise Manager iar SYS pentru conectarea la baza de date. II.1 Crearea utilizatorilor, a rolurilor, acordare şi revocare de drepturi în mod interactiv folosind interfaţa grafică 1. Crearea unui utilizator şi atribuirea de drepturi şi roluri În ORACLE există 3 tipuri de drepturi: 1. Drepturi sistem (system privileges) – permit utilizatorilor să efectueze anumite acţiuni în baza de date, printre care crearea, distrugerea sau modificarea tabelelor, view-urilor, segmentelor rollback sau procedurilor stocate; Privilegiile SYSTEM pot fi clasificate după cum urmează: § privilegii privind operaţii care vizează întregul sistem, cum ar fi CREATE SESSION sau CREATE TABLESPACE; § privilegii privind operaţii care vizează obiectele din propria schemă cum ar fi CREATE TABLE; § privilegii privind operaţii care vizează obiecte din oricare schemă, de exemplu CREATE ANY TABLE. Categorie drepturi SYSTEM EXEMPLE INDEX CREATE ANY INDEX ALTER ANY INDEX DROP ANY INDEX TABLE CREATE TABLE CREATE ANY TABLE ALTER ANY TABLE DROP ANY TABLE SELECT ANY TABLE UPDATE ANY TABLE DELETE ANY TABLE SESSION CREATE SESSION ALTER SESSION RESTRICTED SESSION TABLESPACE CREATE TABLESPACE ALTER TABLESPACE DROP TABLESPACE UNLIMITED TABLESPACE PDF created with pdfFactory trial version www.pdffactory.com

description

Parte din ghid lab baze de date

Transcript of Lab baze de date 2

  • Laborator 2 - SGBD ORACLE_____________________________________________

    Universitatea Dunarea de Jos Galati Lect. dr. Mihai Gianina

    II. Crearea utilizatorilor, a rolurilor, acordare i revocare de drepturi

    Implicit, la instalare, ORACLE creeaz trei utilizatori: SYS, SYSTEM i SYSMAN care sunt utilizai pentru conectarea iniial la sistem i care au drepturi de administrator asupra sistemului i asupra bazei de date. Parola de conectare pentru aceti utilizatori se stabilete la instalare. Utilizatorul SYSMAN este utilizat pentru conectarea la Enterprise Manager iar SYS pentru conectarea la baza de date.

    II.1 Crearea utilizatorilor, a rolurilor, acordare i revocare de drepturi n mod interactiv folosind interfaa grafic

    1. Crearea unui utilizator i atribuirea de drepturi i roluri

    n ORACLE exist 3 tipuri de drepturi: 1. Drepturi sistem (system privileges) permit utilizatorilor s efectueze anumite aciuni n

    baza de date, printre care crearea, distrugerea sau modificarea tabelelor, view-urilor, segmentelor rollback sau procedurilor stocate; Privilegiile SYSTEM pot fi clasificate dup cum urmeaz: privilegii privind operaii care vizeaz ntregul sistem, cum ar fi CREATE SESSION

    sau CREATE TABLESPACE; privilegii privind operaii care vizeaz obiectele din propria schem cum ar fi

    CREATE TABLE; privilegii privind operaii care vizeaz obiecte din oricare schem, de exemplu

    CREATE ANY TABLE.

    Categorie drepturi SYSTEM EXEMPLE

    INDEX CREATE ANY INDEX ALTER ANY INDEX DROP ANY INDEX

    TABLE

    CREATE TABLE CREATE ANY TABLE ALTER ANY TABLE DROP ANY TABLE SELECT ANY TABLE UPDATE ANY TABLE DELETE ANY TABLE

    SESSION CREATE SESSION ALTER SESSION RESTRICTED SESSION

    TABLESPACE

    CREATE TABLESPACE ALTER TABLESPACE DROP TABLESPACE UNLIMITED TABLESPACE

    PDF created with pdfFactory trial version www.pdffactory.com

  • Laborator 2 - SGBD ORACLE_____________________________________________

    Universitatea Dunarea de Jos Galati Lect. dr. Mihai Gianina

    2. Drepturi obiect (object privileges) acestea permit accesul sau controlul doar asupra unui singur obiect, specificat. Exemple de astfel de privilegii;

    Obiect

    Priv. Obiect Tabel View Secven Procedur

    ALTER DELETE EXECUTE INDEX INSERT REFERENCES SELECT UPDATE 3. Rolul (role) reprezint seturi de privilegii/drepturi grupate dup criterii specifice care

    pot fi acordate printr-o singur operaiune unuia sau mai multor utilizatori. Printre caracteristicile rolurilor se numr: sunt acordate sau revocate prin aceeai comand ca i n cazul privilegiilor/drepturilor

    sistem; pot fi acordate direct unui utilizator sau unui alt rol; pot fi constituite att din privilegii sistem ct i din privilegii obiect; sunt activate la nivelul fiecrui utilizator; la activare pot cere autentificarea printr-o parol.

    Exist cteva roluri implicite pentru utilizatori i anume: CONNECT permite utilizatorului s se conecteze la baza de date. Acest rol trebuie

    atribuit tuturor utilizatorilor care trebuie s aib acces la baza de date; RESOURCE Permite utilizatorului s creeze anumite obiecte n schema sa. Acest rol

    trebuie acordat doar dezvoltatorilor de aplicaii sau utilizatorilor care trebuie s creeze obiecte. Acest rol ofer urmtoarele drepturi: CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER, CREATE TYPE;

    DBA permite utilizatorilor s execute cele mai multe din funciile unui administrator inclusiv acelea de a crea noi utilizatori i de a le acorda drepturi, de a crea, terge i modifica noi roluri, crearea i tergerea de obiecte din schemele altor utilizatori, etc. Acest rol include toate drepturile unui administrator de baze de date dar nu acord dreptul de a porni sau a nchide o baz de date. Aceste drepturi sunt acordate implicit doar utilizatorului SYSTEM. El cumuleaz toate privilegiile sistem cu ADMIN OPTION;

    EXP_FULL_DATABASE conine drepturile necesare pentru a putea exporta ntreaga baza de date;

    IMP_FULL_DATABASE conine drepturile necesare pentru a putea importa ntreaga baza de date;

    DELETE_CATALOG_ROLE - drepturile DELETE pentru toate tabelele dicionarului de date;

    PDF created with pdfFactory trial version www.pdffactory.com

  • Laborator 2 - SGBD ORACLE_____________________________________________

    Universitatea Dunarea de Jos Galati Lect. dr. Mihai Gianina

    EXECUTE_CATALOG_ROLE - Privilegiile EXECUTE pentru toate package-urile dicionarului de date;

    SELECT_CATALOG_ROLE - Privilegiile SELECT pentru toate tabelele dicionarului de date

    OBSERVAIE: La crearea unui utilizator, ORACLE creeaz automat i o SCHEM pentru utilizatorul respectiv. SCHEMA este un container logic care va conine toate obiectele bazei de date (tabele, vederi, proceduri stocate, declanatori, etc) pe care le creeaz utilizatorul respectiv. Denumirea schemei este aceeai cu numele utilizatorului i permite identificarea fr ambiguitate a obiectelor create de ctre utilizatorul respectiv.

    1. Crearea utilizatorului

    n pagina HOME se merge n grupul de aplicaii Administration SchemaUsers and PrivilegesUsers Pagina Users afieaz toate conturile utilizator existente i informaii despre ele. Pentru crearea unui nou utilizator se acioneaz butonul CREATE din partea dreapt a ecranului.

    Fig. 1 Crearea utilizatorilor, acordarea i revocarea de drepturi

    Authentification (autentificare). n ORACLE exist trei tipuri de autentificri:

    o Password (prin parol) autentificarea utilizatorului se va realiza prin parola stabilita la nivelul SGBD-ului ORACLE. n acest caz, parolele i autentificarea sunt

    PDF created with pdfFactory trial version www.pdffactory.com

  • Laborator 2 - SGBD ORACLE_____________________________________________

    Universitatea Dunarea de Jos Galati Lect. dr. Mihai Gianina

    gestionate de ctre SGBD. Este recomandat n cazul unui numr redus de utilizatori;

    o External (autentificare extern) autentificarea utilizatorilor se face cu parola pe care acetia o au pe sistemul de operare. Astfel, administrarea parolelor i autorizarea este efectuat de ctre SO. Acest tip de autentificare are urmtoarele avantaje: se pot folosi mai multe tipuri de autentificri (parole, carduri inteligente, amprente, sistem Kerberos, etc).

    o Global (autentificare global) permite centralizarea managementului utilizatorilor i a autorizrii folosind un directory service (de exemplu, Active Directory n Windows). Utilizatorii sunt identificai la nivelul bazei de date ca utilizatori globali ceea ce nseamn ca ei sunt autentificai de ctre SSL i c managementul utilizatorilor se face centralizat, n afara bazei de date, de ctre directory service. Aceast modalitate permite crearea de roluri i utilizatori la nivel de ntreprindere ceea ce face ca un utilizator s aib o identitate unic la nivelul ntreprinderii, putndu-se conecta la multiple baze de date cu aceeai parol. Este recomandat pentru sisteme foarte mari cu muli utilizatori, baze de date i aplicaii multiple. Permite implementarea mecanismului Single Sign-On reducnd eforturile de administrare;

    Expire password now permite utilizatorului s schimbe parola la prima logare. Parola aleas la crearea utilizatorului, i permite acestuia s se conecteze prima data la baza de date. Dup conectare, utilizatorului i se cere s schimbe parola;

    Default Tablespace Dac nu au fost create i alte tablespace-uri, unui utilizator nou creat este bine s i se aloce tablespace-ul USERS. Tablespace-ul USERS este creat automat de ORACLE la instalare, alturi de tablespace-ul SYSTEM i SYSAUX (un tablespace auxiliar pentru SYSTEM). Tablespace-ul USERS, este constituit dintr-un singur fiier de date care va crete (se autoextinde) pe msur ce volumul de date din aplicaii crete. Nu este recomandat s se aloce utilizatorilor ca tablespace implicit, tablespace-ul SYSTEM mai ales dac acetia au dreptul de a crea obiecte: baze de date, tabele, etc;

    Temporary tablespace este folosit n general pentru a crete eficiena utilizrii tablespace-ului implicit n cazul operaiilor multiple i concurente. Dac o baz de date nu are specificat un tablespace temporar, ORACLE utilizeaz n acest sens tablespace-ul SYSTEM. Acest lucru nu este recomandat, de aceea va transmite mesaje de avertizare administratorului pentru crearea unui tablespace temporar. n mod implicit, ORACLE creeaz tablesapace-ul temporar TEMP;

    Status LOCKED/UNLOCKED un utilizator blocat va fi inactiv. El nu se va putea loga la sistem;

    Alocarea de roluri utilizatorului n pagina ROLES se acioneaz butonul EDIT LIST. n mod implicit utilizatorului i

    este asociat rolul CONNECT. Cu acest rol el nu va putea dect s se conecteze la baza de date.

    se selecteaz din lista rolurilor i rolul DBA pentru ca utilizatorul s aib drepturi de administrator pe baza de date;

    se acioneaz butonul OK; Alocarea de drepturi de sistem

    PDF created with pdfFactory trial version www.pdffactory.com

  • Laborator 2 - SGBD ORACLE_____________________________________________

    Universitatea Dunarea de Jos Galati Lect. dr. Mihai Gianina

    n pagina SYSTEM PRIVILEGES se acioneaz butonul EDIT LIST pentru a vizualiza toate drepturile de sistem existente;

    pentru ca utilizatorul s aib drepturi de administrator asupra bazei de date trebuie s i se aloce dreptul de sistem SYSDBA. Dac utilizatorul este doar un operator al bazei de date i se aloc dreptul SYSOPER. Aceste dou drepturi conin toate drepturile necesare astfel nct utilizatorul s poat efectua operaiile specifice unui administrator al bazei de date, respectiv operator al bazei de date. De asemenea, se aloc utilizatorului dreptul UNLIMITED TABLESPACE pentru a dispune de spaiu nelimitat n cadrul tablespace-ului ales la crearea lui. Se selecteaz din list aceste drepturi i cu ajutorul sgeii dreapta se trec n lista drepturilor selectate;

    se acioneaz butonul OK; Alocarea de drepturi la nivel de obiect n pagina OBJECT PRIVILEGES din lista SELECT OBJECT TYPE se selecteaz tipul

    de obiect asupra cruia se dorete s se aloce drepturi: funcii, proceduri, programe, tabele, coloane, vederi, etc. Va fi afiat o pagin ce va conine drepturile specifice obiectului selectat, de exemplu tabel;

    n pagina ADD TABLE OBJECT PRIVILEGES se selecteaz tabela folosind butonul te tip lantern. Se selecteaz schema n care se afl tabela/tabelele i se caut folosind butonul GO. Dac nu este specificat nici un nume n rubrica SEARCH TABLE NAME sunt returnate toate tabele gsite n schema selectat;

    se selecteaz tabela/tabelele pentru care se dorete s se acorde drepturile i se acioneaz butonul SELECT;

    din lista AVAILABLE PRIVILEGES se selecteaz drepturile care se dorete s fie alocate utilizatorului asupra tabelelor selectate;

    se acioneaz butonul OK;

    PDF created with pdfFactory trial version www.pdffactory.com

  • Laborator 2 - SGBD ORACLE_____________________________________________

    Universitatea Dunarea de Jos Galati Lect. dr. Mihai Gianina

    Fig. 2 Alocarea de drepturi utilizatorilor la nivel de obiect

    Pentru finalizarea crerii utilizatorului cu toate drepturile i rolurile alocate se acioneaz butonul OK. 2. Crearea rolurilor utilizator n pagina HOME se merge n grupul de aplicaii Administration SchemaUsers and PrivilegesRoles Name - se introduce numele noului rol; Authentification se stabilete modul de autentificare a rolului: NONE (fr

    autentificare) la activarea rolului respectiv nu se solicit parol, este suficient parola utilizatorului, Password, External, Global.

    Salvarea noului rol se face cu butonul OK. Rolul astfel creat nu are nici un drept. Aceste drepturi trebuie s fie acordate rolului.

    PDF created with pdfFactory trial version www.pdffactory.com

  • Laborator 2 - SGBD ORACLE_____________________________________________

    Universitatea Dunarea de Jos Galati Lect. dr. Mihai Gianina

    Fig. 3 Crearea rolurilor

    Alocarea de drepturi unui rol: n pagina rolurilor se selecteaz rolul nou creat i se acioneaz butonul EDIT; n pagina ROLES se d clic pe butonul EDIT LIST i se selecteaz un rol care poate fi

    ataat noului rol (unui rol i se poate ataa un nou rol); n pagina SYSTEM PRIVILEGES se selecteaz drepturile de sistem care se acord

    rolului respectiv; n pagina OBJECT PRIVILEGES se selecteaz drepturile la nivel de obiect pentru rolul

    respectiv. Se procedeaz la fel ca n cazul acordrii de astfel de drepturi unui utilizator; se acioneaz butonul APPLY pentru a salva toate modificrile efectuate asupra rolului; pentru vizualizarea tuturor drepturilor i rolurilor atribuite rolului, se selecteaz rolul

    din lista de roluri i se acioneaz butonul VIEW. 3. Modificarea i tergerea unui utilizator Pentru modificarea datelor unui utilizator se folosete grupul de aplicaii ADMINISTRATION. n pagina HOME se merge n grupul de aplicaii Administration SchemaUsers and PrivilegesUsers, se selecteaz utilizatorul dorit, se acioneaz butonul EDIT i se fac modificrile necesare ntr-o manier asemntoare cu cea folosit la crearea utilizatorului, dup care se acioneaz butonul de comand APPLY. Pentru tergerea unui utilizator, se merge n lista de utilizatori, Administration SchemaUsers and PrivilegesUsers, se selecteaz utilizatorul dorit i se acioneaz butonul DELETE.

    PDF created with pdfFactory trial version www.pdffactory.com

  • Laborator 2 - SGBD ORACLE_____________________________________________

    Universitatea Dunarea de Jos Galati Lect. dr. Mihai Gianina

    ATENTIE! Pentru a putea terge un utilizator trebuie mai nti terse toate obiectele asociate schemei sale. Dac la tergerea utilizatorului (DROP) se alege opiunea CASCADE atunci, odat cu utilizatorul se terg i toate obiectele asociate schemei sale. 4. Modificarea i tergerea unui rol Modificarea i tergerea unui rol are loc n aceeai manier ca i modificarea i tergerea unui utilizator.

    PROBLEME DE REZOLVAT

    1. S se creeze rolul OPERATOR; 2. S i se atribuie rolului OPERATOR rolurile: CONNECT i DBA; 3. S i se aloce rolului OPERATOR drepturile de sistem CREATE; DROP; DELETE;

    ALTER; SELECT ANY TABLE;

    4. S i se aloce rolului OPERATOR dreptul de a modifica, terge i selecta trei tabele din schema dumneavoastr;

    5. S se salveze rolul astfel creat; 6. S se creeze utilizatorul STUDENT cu tablespace-ul implicit USER iar tablespace-ul

    temporar implicit TEMP, cu parola Oper;

    7. S i se aloce utilizatorului STUDENT rolul OPERATOR, dreptul de sistem SYSOPER. S se salveze utilizatorul astfel creat.

    8. S se modifice utilizatorul STUDENT prin atribuirea de drepturi la nivel de obiect; 9. S se vizualizeze utilizatorul astfel creat; 10. S se tearg att utilizatorul creat ct i rolul;

    PDF created with pdfFactory trial version www.pdffactory.com

  • Laborator 2 - SGBD ORACLE_____________________________________________

    Universitatea Dunarea de Jos Galati Lect. dr. Mihai Gianina

    II.2 Crearea utilizatorilor, a rolurilor, acordare i revocare de drepturi n mod comand

    Administrarea utilizatorilor i a rolurilor se face folosind urmtoarele comenzi:

    Comand Explicaii CREATE USER IDENTIFIED BY

    Creeaz un utilizator i-i specific parola

    ALTER USER Modific un utilizator GRANT TO

    Atribuie un rol unui utilizator

    DROP USER [CASCADE]

    terge un utilizator

    CREATE ROLE Creeaz un rol GRANT TO

    Atribuie drepturi sau/i roluri unui rol

    REVOKE FROM

    Anuleaz drepturile sau alte roluri acordat unui rol

    REVOKE FROM

    Anuleaz un rol acordat unui utilizator

    SET ROLE [IDENTIFIED BY ]

    Activeaz explicit rolurile specificate ntr-o sesiune deschis de lucru i dezactiveaz toate celelalte roluri acordate respectivului utilizator.

    ALTER ROLE Modific un rol DROP ROLE terge un rol

    Drepturile se pot acorda: La nivel de sistem

    CONNECT RESOURCE DBA CREATE [ANY] [obiect al bazei de date: table, user, role, etc.] ALTER [obiect al bazei de date: table, user, role, etc.] DROP [obiect al bazei de date: table, user, role, etc.]

    La nivel de obiect - se acord pentru un anumit obiect, de exemplu: tabel, coloan a tabelei, etc. pentru urmtoarele operaii:

    DELETE EXECUTE INSERT SELECT

    PDF created with pdfFactory trial version www.pdffactory.com

  • Laborator 2 - SGBD ORACLE_____________________________________________

    Universitatea Dunarea de Jos Galati Lect. dr. Mihai Gianina

    UPDATE OBSERVAIE: Pentru executarea comenzilor din exemplele urmtoare, se utilizeaz utilitarul SQL*PLUS. Acesta se lanseaz din Start ALL Programs Oracledb10g Application Development SQL*PLUS.

    Fig. 4 Conectarea la baza de date prin SQL*PLUS

    User Name se introduce numele utilizatorului; Password se introduce parola utilizatorului specificat; Host String este format din numele bazei de date (SID-ul) la care se dorete

    conectarea, urmat de specificaia as sysdba, pentru ca utilizatorul s se conecteze la baza de date cu drepturi de administrator. n acest caz, utilizatorul conectat are aceleai drepturi ca i SYS.

    Conectarea la baza de date se face n mod comand astfel:

    CONNECT dbadmin/oracle1@orcl as sysdba; Unde: dbadmin numele utilizatorului; oracle1 parola; orcl numele instanei bazei de date (SID-ul); as sysdba conectarea cu drepturile utilizatorului SYS. La conectarea as sysdba toate

    obiectele create de utilizator se creeaz n schema lui SYS, i nu a utilizatorului logat. O astfel de logare se face doar in cazurile in care utilizatorul are nevoie de drepturi speciale, altfel logarea se face fr clauza as sysdba;

    EXEMPLE: 1. S se creeze utilizatorul student cu parola stud.

    CREATE USER student IDENTIFIED BY stud;

    PDF created with pdfFactory trial version www.pdffactory.com

  • Laborator 2 - SGBD ORACLE_____________________________________________

    Universitatea Dunarea de Jos Galati Lect. dr. Mihai Gianina

    2. S se creeze rolul cu denumirea nceptor i s i se atribuie drepturile de sistem CREATE TABLE, CREATE PROCEDURE, CREATE TRIGGER.

    CREATE ROLE incepator; GRANT CREATE TABLE, CREATE PROCEDURE, CREATE TRIGGER TO incepator;

    3. S se acorde rolului nceptor urmtoarele drepturi la nivel de obiect: de modificare, tergere i inserare la nivelul tabelei Produse i dreptul de modificare i inserare asupra coloanei Denumire din tabela Categorii;

    GRANT UPDATE, DELETE, INSERT ON produse TO incepator; GRANT UPDATE(denumire), INSERT(denumire) ON categorii TO incepator;

    OBSERVAIE: n aceeai manier pot si acordate drepturi utilizatorilor. Acordarea acelorai drepturi din exemplele de mai sus, utilizatorului student se face astfel:

    GRANT UPDATE, DELETE, INSERT ON produse TO student; GRANT UPDATE(denumire), INSERT(denumire) ON categorii TO student;

    4. S se anuleze dreptul de crearea a procedurilor acordat rolului nceptor i a dreptului de

    modificare a coloanei Denumire din tabelul categorii acordat user-ului student.

    REVOKE CREATE PROCEDURE FROM incepator; REVOKE UPDATE(denumire) ON categorii FROM student;

    5. S se modifice parola utilizatorului student, noua parola fiind studinfo.

    ALTER USER STUDENT IDENTIFIED BY studinfo;

    6. S se vizualizeze rolurile i drepturile utilizatorului curent. ORACLE salveaz n vederea USER_ROLE_PRIVS drepturile i rolurile alocate utilizatorului curent.

    SELECT * FROM USER_ROLE_PRIVS;

    OBSERVAIE: Dac utilizatorul este logat ca SYSDBA, el va avea toate drepturile utilizatorului SYS. Pentru a vedea strict drepturile utilizatorului, de face logarea la baza de date fr dreptul SYSDBA folosind comanda CONNECT dbadmin/oracle1@orcl.

    PROBLEME DE REZOLVAT

    1. S se creeze utilizatorul informatica cu parola info; 2. S se creeze rolul infeconomica.

    PDF created with pdfFactory trial version www.pdffactory.com

  • Laborator 2 - SGBD ORACLE_____________________________________________

    Universitatea Dunarea de Jos Galati Lect. dr. Mihai Gianina

    3. S se atribuie rolului infeconomica rolul de sistem RESOURCE i dreptul de creare de noi roluri.

    4. S se atribuie utilizatorului informatica rolul infeconomica i dreptul de inserare i actualizare a coloanelor denumire i adresa din tabela Clieni.

    5. S se anuleze drepturile acordate utilizatorului informatica n afara rolului atribuit acestuia.

    6. S se tearg rolul infeconomic. 7. S se vizualizeze toate caracteristicile noului utilizator creat. 8. Conectai-v la baza de date ca SYSDBA i vizualizai rolurile i drepturile utilizatorului

    curent;

    9. Conectai-v la baza de date ca SYSOPER i vizualizai rolurile i drepturile utilizatorului curent;

    10. Conectai-v doar cu utilizatorul i parola i vizualizai rolurile i drepturile utilizatorului curent;

    REZOLVRI

    PDF created with pdfFactory trial version www.pdffactory.com