IS481 Final Project Proposal
IS481 Final Project Proposal
IS481 Final Project Proposal
Thefinalprojectismeanttobecomprehensive.Itrequiresyoutopullallyour
knowledgetogethertoimplementdatabasesecurity.,
Deliverables:
Youarerequiredtosubmityourscriptsandscreencaptures.
Specifications:
Thefollowingliststhespecificationsonthefinalproject:
Requiredtasks:
1. Createthefollowingdatabaseuserswiththeparametersspecifiedinthetable.
(10points)
User
Password
OtherParameters
Tablespace:USERS
DBSEC_ADMINIs481admin Temporarytablespace:TEMP
DBSEC_CLERKIs481clerk
DBSEC_DEV Is481dev
DBSEC
Is481#1
VPD_CLERK1 john$22
VPD_CLERK2 nancy$46
Sameasabove
Sameasabove
Sameasabove
Sameasabove
Sameasabove
2. CreateaCUSTOMERtableasasampledatabaseobjecttoimplementsecurity.
(10points)TheDBSECuseristheowneroftheCUSTOMERtable,whichhas
thefollowingcolumns.
ColumnName
SALES_REP_ID
CUSTOMER_ID
DataType
NUMBER(4)
CUSTOMER_SSN
FIRST_NAME
LAST_NAME
ADDR_LINE
CITY
VARCHAR2(9)
VARCHAR2(20)
VARCHAR2(20)
VARCHAR2(60)
VARCHAR2(30)
NUMBER(8)NOTNULL
STATE
VARCHAR2(30)
ZIP_CODE
VARCHAR2(9)
PHONE
VARCHAR2(15)
EMAIL
VARCHAR2(80)
CC_NUMBER
VARCHAR2(20)
CREDIT_LIMIT
NUMBER
GENDER
CHAR(1)
STATUS
CHAR(1)
COMMENTS
VARCHAR2(1024)
CTL_UPD_DTTM
DATE
CTL_UPD_USER
VARCHAR2(30)
CTL_REC_STAT
CHAR(1)
Populatedatausingthefileprovided.
Iwillcreateafileforthedownload
3. Createpasswordcomplexitypolicyfunction(named"complexity_function").(10
points)Thepasswordpolicywillenforcethefollowingcomplexitysothatthe
password:
o
o
o
o
o
Isatleastsix(6)characterslong
Differsfromtheusername
Hasatleastonealpha,onenumeric,andonepunctuation
markcharacter
Isnotsimpleorobvious,suchaswelcome,account,oracle,
database,oruser.
Differsfromthepreviouspasswordbyatleast3characters
4. Createprofilesandmanagealldatabaseusersusingtheprofilesincluding
enforcingthepasswordcomplexity.(20points)
Youwillcreatethefollowingprofiles:
Profile
Resources
SESSIONS_PER_USER=5
DBSEC_ADMIN_PRO
CONNECT_TIME=8hours
F
IDLE_TIME=1hour
Password
PASSWORD_LIFE_TIME=1
month
PASSWORD_GRACE_TIME=
7days
PASSWORD_VERIFY_FUNC
TION=complexity_function
CONNECT_TIME=12hours
DBSEC_DEV_PROF IDLE_TIME=2hours
CPU_PER_CALL=1minute
PASSWORD_LIFE_TIME=1
month
PASSWORD_GRACE_TIME=
14days
PASSWORD_VERIFY_FUNC
TION=complexity_function
FAILED_LOGIN_ATTEMPTS=
3
SESSIONS_PER_USER=1 PASSWORD_LIFE_TIME=1
CPU_PER_CALL=5seconds month
DBSEC_CLERK_PRO CONNECT_TIME=8hours
PASSWORD_LOCK_TIME=3
F
IDLE_TIME=30minutes
days
LOGICAL_READS_PER_CAL PASSWORD_GRACE_TIME=
L=10KB
14days
PASSWORD_VERIFY_FUNC
TION=complexity_function
Youwillcreatethefollowingroles:
RoleName
DBSEC_ADMIN_ROLE
Privileges
SELECTandALTERonallDBSECtables
SELECT,INSERT,andUPDATEonallDBSEC
DBSEC_CLERK_ROLE
tables
SELECT,INSERT,UPDATEandDELETEonall
DBSEC_SUPERVISOR_ROLE
DBSECtables
SELECTonlyonCUSTOMERtableownedby
DBSEC_QUERY_ROLE
DBSEC
Youwillassignrolesandprofilestodatabaseusersasfollows:
UserName
Role
DBSEC_ADMIN DBSEC_ADMIN_ROLE
Profile
DBSEC_ADMIN_PROF
DBSEC_CLERK
,VPD_CLERK1, DBSEC_CLERK_ROLE DBSEC_CLERK_PROF
VPD_CLERK2
DBSEC_ADMIN_ROLE
plus
DBSEC_DEV
DBSEC_DEV_PROF
DBSEC_SUPERVISOR_R
OLE
5. ImplementviewonCUSTOMERtable.(10points)YouwillcreateaVIEWnamed
asCUSTOMER_F_VIEWtodisplayonlyrowsthatbelongtotheloggedonuser.
YouwillenableVPD_CLERK1toaccesstheCUSTOMERdatathroughtheview.
6. Implementvirtualprivatedatabase(VPD)onCUSTOMERtablesothatonlythe
ownerofdatacanaccesstheirownrow.(15points)
First,youwillcreateapolicyfunction,named"DBSEC_ROW_OWNER"sothat
onlythedatathatbelongtothecurrentuserwillbeaccessed.Then,youwilladd
thepolicyusingDBMS_RLS.ADD_POLICYfunction.
7. AudittheactivitiesonCUSTOMERtable.(15points)
Youwilldesignandimplementthefollowingauditingfunctionsonthe
CUSTOMERtable.
o
o
o
Trackall"SELECT"activitiesontheCUSTOMERtable,
includingdatabaseuser,operatingsystemuser,andtimewhen
theoperationisperformed.
TrackthechangeswhenCREDIT_LIMITissettoavalue
above$50,000.
TracktheCUSTOMERtablewhenacustomerrecordwas
deleted.
8. Audittheuseractivitiesoftwousers.Youwillsetupanauditmechanismto
monitorallactivitiesbytwo(2)databaseusers:VPD_CLERK1,VPD_CLERK2.
(10points