Pages

Thursday, May 15, 2014

How to use the new SYSBACKUP privilege to perform backup and recovery tasks without accessing to table data

The SYSBACKUP is a new privilege introduced in the Oracle Database 12c release that allows a user to perform any backup or recovery operations.

It is heartily suggested to create a new user with the SYSBACKUP privilege granted and perform daily backup activities with that new user, instead of using directly the SYSBACKUP user created by default during the database installation: the SYSBACKUP user should even remain locked.

Before proceeding I will need to create a new user at the operating system level, but not belonging to the dba OS group: in this way, using the password file, I will able to assign the sysbackup privilege to a normal database user and forcing him to log in using a password.

Indeed if I try to log into the database when I'm already authorized at the OS level because I'm the oracle OS user, I am allowed to connect with the SYSBACKUP privilege (and of course as SYSDBA, SYSOPER, SYSDG and SYSKM) even with a wrong user and/or password.
Let's see few examples considering that when you are connecting AS SYSDBA the current schema is SYS (independently from the username you specify in the sqlplus connection) and the session USER is SYS; when you are connecting AS SYSBACKUP the current schema is again SYS, but the session user is identified as SYSBACKUP.
[oracle@localhost ~]$ id
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Wed May 7 06:12:19 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select sys_context('USERENV', 'CURRENT_SCHEMA') current_schema from dual;

CURRENT_SCHEMA
------------------
SYS

SQL> select sys_context('USERENV', 'SESSION_USER') session_user from dual;

SESSION_USER
------------------
SYS

SQL> exit
In the previous example I was able to connect as SYSDBA because the user was "already" verified by the operating system; when I try to connect using a normal database user, in this case specifying marcov and its right password, it happens the same thing that is I'm not connected as the specified user, but as SYS user
[oracle@localhost ~]$ sqlplus marcov/marcov as sysdba
SQL> select sys_context('USERENV', 'CURRENT_SCHEMA') current_schema, sys_context('USERENV', 'SESSION_USER') session_user from dual;

CURRENT_SCHEMA         SESSION_USER
-------------------- --------------------
SYS             SYS
What does it happens when I try to connect AS SYSDBA using a normal database user and a wrong password ?
Again I'm able to connect to the database as the SYS user.
[oracle@localhost ~]$ sqlplus marcov/m as sysdba
SQL> select sys_context('USERENV', 'CURRENT_SCHEMA') current_schema, sys_context('USERENV', 'SESSION_USER') session_user from dual;

CURRENT_SCHEMA         SESSION_USER
-------------------- --------------------
SYS             SYS
What does it happens when I try to connect AS SYSDBA using a non existing database user and a password ?
Again I'm able to connect to the database as the SYS user.
All this happens because I'm using the oracle user at the operating system level which belongs to the dba operating system group and so it's allowed
to estabilish a connection to the local database. There is a correspondence between the OS groups and the database system privileges: the dba OS group maps to the SYSDBA database system privilege (as previously seen), the oper OS group (when created and specified during the installation process) maps to the SYSOPER database system privilege, the oinstall OS group doesn't map to any database system privilege.
[oracle@localhost ~]$ sqlplus m/m as sysdba

SQL> select sys_context('USERENV', 'CURRENT_SCHEMA') current_schema, sys_context('USERENV', 'SESSION_USER') session_user from dual;

CURRENT_SCHEMA         SESSION_USER
-------------------- --------------------
SYS             SYS
So the first step to test a connection AS SYSBACKUP database system privilege is to avoid a connection using the oracle operating system user: I need to create another user at the operating system level without special group. I'm going to create marcov OS user:
[root@localhost home]# useradd marcov -p marcov
[root@localhost home]# id marcov
uid=54322(marcov) gid=54323(marcov) groups=54323(marcov)
Now you have to configure this account to let it connect to the database: I simply copied the TNS file located at
/app/oracle/product/12.1.0/dbhome_1/network/admin/tnsnames.ora, not accessible by the new user, under the default directory of marcov OS user (/home/marcov) and modified the /home/marcov/.bash_profile to add few environment variables to marcov's profile:
[root@localhost home]# cp /app/oracle/product/12.1.0/dbhome_1/network/admin/tnsnames.ora /home/marcov
[root@localhost home]# chown marcov.marcov /home/marcov/tnsnames.ora
[root@localhost home]# cat /home/marcov/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
TNS_ADMIN=/home/marcov
ORACLE_HOME=/app/oracle/product/12.1.0/dbhome_1
ORACLE_SID=CDB001
export TNS_ADMIN
export ORACLE_HOME
export ORACLE_SID

PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

export PATH
I've already a database schema named MARCOV. From the marcov OS user I'm now able to create a connection with the local database using that schema name and password specifying the tns entry of a pluggable database.
root@localhost ~]# su - marcov
[marcov@localhost ~]$ sqlplus marcov/marcov@PDB001
SQL> show user
USER is "MARCOV"
I'm not of course able to connect using the system privilege AS SYSBACKUP. If I try the error "ORA-01017: invalid username/password; logon denied" is raised.
[marcov@localhost ~]$ sqlplus marcov/marcov@PDB001 as sysbackup

SQL*Plus: Release 12.1.0.1.0 Production on Wed May 7 06:47:42 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name: 
I need to explicity grant the SYSBACKUP system privilege to the MARCOV database user:
[oracle@localhost ~]$ sqlplus / as sysdba
SQL> alter session set container=PDB001;

Session altered.

SQL> grant sysbackup to marcov;

Grant succeeded.
Once the GRANT command is assigned to MARCOV database user, you can see a new entry in the V$PWFILE_USERS view: the view says that the username MARCOV is into the orapwd file and can connect to the local database using the SYSBACKUP system privilege.
SQL> select * from v$pwfile_users;

USERNAME               SYSDB SYSOP SYSAS SYSBA SYSDG SYSKM     CON_ID
------------------------------ ----- ----- ----- ----- ----- ----- ----------
SYS                   TRUE  TRUE  FALSE FALSE FALSE FALSE        0
MARCOV                   FALSE FALSE FALSE TRUE  FALSE FALSE        3
After having received the system privilege, MARCOV database user is now able to connect AS SYSBACKUP. Have a look at the CURRENT_SCHEMA and at the SESSION_USER values.
[marcov@localhost ~]$ sqlplus marcov/marcov@PDB001 as sysbackup
SQL> col current_schema format a10
SQL> col session_user format a20
SQL> select sys_context('USERENV', 'CURRENT_SCHEMA') current_schema, sys_context('USERENV', 'SESSION_USER') session_user from dual;

CURRENT_SC SESSION_USER
---------- --------------------
SYS       SYSBACKUP
The main goal of the system privilege SYSBACKUP is to implement the so called separation of duties: you can grant SYSBACKUP privilege to a user allowed only to perform backup or recovery operation using the RMAN command line, but without possibility to see or access the data of the database.
Let's first see what are the default system privileges and roles associated with the SYSBACKUP privilege.
SQL> show user;
USER is "SYSBACKUP"
SQL> set pages 999
SQL> col grantee format a25
SQL> col granted_role format a25
SQL> select * from dba_sys_privs where grantee = 'SYSBACKUP';

GRANTEE           PRIVILEGE                   ADMIN_OPTION COMMON
------------------------- ---------------------------------------- ------------ ------
SYSBACKUP          ALTER SYSTEM                   NO           YES
SYSBACKUP          AUDIT ANY                   NO           YES
SYSBACKUP          SELECT ANY TRANSACTION           NO           YES
SYSBACKUP          SELECT ANY DICTIONARY            NO           YES
SYSBACKUP          RESUMABLE                   NO           YES
SYSBACKUP          CREATE ANY DIRECTORY               NO           YES
SYSBACKUP          UNLIMITED TABLESPACE               NO           YES
SYSBACKUP          ALTER TABLESPACE               NO           YES
SYSBACKUP          ALTER SESSION                NO           YES
SYSBACKUP          ALTER DATABASE               NO           YES
SYSBACKUP          CREATE ANY TABLE               NO           YES
SYSBACKUP          DROP TABLESPACE               NO           YES
SYSBACKUP          CREATE ANY CLUSTER               NO           YES

13 rows selected.

SQL> select * from dba_role_privs where grantee = 'SYSBACKUP';

GRANTEE           GRANTED_ROLE            ADMIN_OPTION DEFAULT_ROLE COMMON
------------------------- ------------------------- ------------ ------------ ------
SYSBACKUP          SELECT_CATALOG_ROLE        NO             YES          YES
The column COMMON (as states in the Oracle documentation: http://docs.oracle.com/cd/E16655_01/server.121/e17615/refrn23274.htm#REFRN23274)
"indicates how the grant was made. Possible values: YES if the role was granted commonly (CONTAINER=ALL was used); NO if the role was granted locally (CONTAINER=ALL was not used)"

When you are connected using MARCOV database user which has the SYSBACKUP system privilege you are able to use the DESCRIBE
command on every database objects, but you are not allowed to have a look at the data contained by the object.
Here is an example of what you receive (ORA-01031: insufficient privileges) when you try to see the data within the object.
SQL> show user;
USER is "SYSBACKUP"
SQL> select table_name from dba_tables where owner = 'MARCOV';

TABLE_NAME
------------------------
T2
T1

SQL> select * from MARCOV.T1;
select * from MARCOV.T1
                     *
ERROR at line 1:
ORA-01031: insufficient privileges


SQL> desc MARCOV.T1;
 Name                       Null?    Type
 ----------------------------------------- -------- ----------------------------
 A                            NUMBER
If your database user with SYSBACKUP privilege needs to access some data, it should directly receive SELECT grant on specific tables.

Once you have a database user with SYSBACKUP privilege you can create a RMAN connection to manage your backups.
[marcov@localhost ~]$ rman

Recovery Manager: Release 12.1.0.1.0 - Production on Wed May 7 13:46:50 2014

Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

RMAN> connect target 'marcov/marcov@PDB001 as sysbackup'

connected to target database: CDB001 (DBID=4134986109)

RMAN> select sys_context('USERENV', 'CURRENT_SCHEMA') current_schema, sys_context('USERENV', 'SESSION_USER') session_user from dual;

using target database control file instead of recovery catalog


CURRENT_SCHEMA     SESSION_USER
------------------ ------------------
SYS                SYSBACKUP
From the RMAN session you can for example take a backup of the current controlfile or have a list of available backups.
RMAN> list backup;


List of Backup Sets
===================


BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
51      Full    209.94M    DISK        00:00:54     14-APR-14      
        BP Key: 51   Status: AVAILABLE  Compressed: YES  Tag: TAG20140414T151315
        Piece Name: /app/oracle/fast_recovery_area/CDB001/E1F26215682E1142E045000000000001/backupset/2014_04_14/o1_mf_nnndf_TAG20140414T151315_9nqqw3np_.bkp
  List of Datafiles in backup set 51
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  7       Full 3389939    14-APR-14 /app/oracle/oradata/CDB001/PDB001/system01.dbf
  8       Full 3389939    14-APR-14 /app/oracle/oradata/CDB001/PDB001/sysaux01.dbf
  9       Full 3389939    14-APR-14 /app/oracle/oradata/CDB001/PDB001/PDB001_users01.dbf

RMAN> backup current controlfile;

Starting backup at 07-MAY-14
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=72 device type=DISK
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_1: starting piece 1 at 07-MAY-14
channel ORA_DISK_1: finished piece 1 at 07-MAY-14
piece handle=/app/oracle/fast_recovery_area/CDB001/E1F26215682E1142E045000000000001/backupset/2014_05_07/o1_mf_ncnnf_TAG20140507T135023_9pn7j3y4_.bkp tag=TAG20140507T135023 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:04
Finished backup at 07-MAY-14

Starting Control File and SPFILE Autobackup at 07-MAY-14
piece handle=/app/oracle/fast_recovery_area/CDB001/autobackup/2014_05_07/o1_mf_s_846942632_9pn7j9dy_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 07-MAY-14

RMAN> list backup;


List of Backup Sets
===================


BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
51      Full    209.94M    DISK        00:00:54     14-APR-14      
        BP Key: 51   Status: AVAILABLE  Compressed: YES  Tag: TAG20140414T151315
        Piece Name: /app/oracle/fast_recovery_area/CDB001/E1F26215682E1142E045000000000001/backupset/2014_04_14/o1_mf_nnndf_TAG20140414T151315_9nqqw3np_.bkp
  List of Datafiles in backup set 51
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  7       Full 3389939    14-APR-14 /app/oracle/oradata/CDB001/PDB001/system01.dbf
  8       Full 3389939    14-APR-14 /app/oracle/oradata/CDB001/PDB001/sysaux01.dbf
  9       Full 3389939    14-APR-14 /app/oracle/oradata/CDB001/PDB001/PDB001_users01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
56      Full    1.13M      DISK        00:00:05     07-MAY-14      
        BP Key: 56   Status: AVAILABLE  Compressed: YES  Tag: TAG20140507T135023
        Piece Name: /app/oracle/fast_recovery_area/CDB001/E1F26215682E1142E045000000000001/backupset/2014_05_07/o1_mf_ncnnf_TAG20140507T135023_9pn7j3y4_.bkp
  Control File Included: Ckp SCN: 3418486      Ckp time: 07-MAY-14

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
57      Full    17.20M     DISK        00:00:02     07-MAY-14      
        BP Key: 57   Status: AVAILABLE  Compressed: NO  Tag: TAG20140507T135032
        Piece Name: /app/oracle/fast_recovery_area/CDB001/autobackup/2014_05_07/o1_mf_s_846942632_9pn7j9dy_.bkp
  SPFILE Included: Modification time: 07-MAY-14
  SPFILE db_unique_name: CDB001
  Control File Included: Ckp SCN: 3418494      Ckp time: 07-MAY-14
When you want to connect to a specific pluggable database using the AS SYSBACKUP syntax directly from the Linux command line you should quote your command with single and double quotes.
[marcov@localhost ~]$ rman target '"marcov/marcov@PDB001 as sysbackup"'

Recovery Manager: Release 12.1.0.1.0 - Production on Wed May 7 13:52:19 2014

Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

connected to target database: CDB001 (DBID=4134986109)

RMAN>
As latest consideration the SYSBACKUP user accounts cannot be dropped.
[oracle@localhost ~]$ sqlplus / as sysdba
SQL> drop user SYSBACKUP;
drop user SYSBACKUP
*
ERROR at line 1:
ORA-28050: specified user or role cannot be dropped
You have no reason now to implement the right separation of duties that best fit for your requirements.

That's all.



72 comments:

  1. The blues of spring are revived in tones of indigo, navy and oxford. We see an emergence of a lighter shade of pale in hemp, heather and white.Put it all into a rich utilitarian take on the duffel and the gym bag in linen, leather and denim custom blended to compliment michael kors belts on sale the whatever you wear.For every man who wants to dress to impress, this Spring 2014 Collection is the intersection of ease and elegance.All women want one (or hundreds). The top designers make them. How do we afford them? michael michael kors hamilton satchel What is it that is so desirable, you say? Well, the designer bag. The bag you drool over in Nordstrom’s as you stroll through South Park. The bag you add to your cart online three times a week michael kors bags on sale without buying it while deciding which lunch place along Tryon to visit. Is it really that wrong to have it?
    Bring in any clean, used handbag or watch during Dillard’s Handbag and Watch Trade In Event and receive michael kors bedford large shoulder bag a discount on any purchase of $50 or more. Used handbags and watches will be donated to a local charity. What a nice way to brighten your spring and summer looks and help those who need with a michael kors fulton hand up!Shoppers who trade-in their handbag or watch will save $15 on a qualified purchase of $50-$75, $25 on a qualified purchase of $76-$125, $40 on a qualified purchase of $126-$199 or $50 on a qualified purchase of michael kors handbags outlet $200 or more.At Dillard’s you’ll find savings on an amazing array of bright spring handbags to complement your corporate, career and casual looks. Handbags you might like include:
    Clearly, there are ranges of prices when shopping designer bags, michael michael kors bedford so it definitely depends on your disposable income level as to whether you lust after Michael Kors or Valentino. However, you deserve the designer bag that is a small splurge for you. This bag must be the one wholesale michael kors outlet you die for, though.

    ReplyDelete
  2. The most bizarre Ray-Ban design In ‘Fear and Loathing in Las Vegas’, that weird thing on Raoul Duke’s Aviators was a cigarette holder. This is considered as one of the most bizarre Ray-Ban designs ever.Tom Cruise’s effect Time and again, Tom Cruise has been credited for increasing the fake ray bans sales of Ray-Ban sunglasses. In 1983, he was seen in ‘Risky Business’ wearing a pair of Wayfarers. That year, the sales of Ray-Ban increased by 50 percent. Three years later, he was seen sporting Aviators in films. This led to a 40% increase in ray ban sunglasses the sales of Ray-Ban eyewear.Did you know these facts about Ray-Ban before? Now, go ahead and share these with your friends and close ones and be known as a Ray-Ban expert.Over the years, sunglasses have ceased to exist as a mere protective gear. Celebrities prescription ray ban sunglasses across the globe are seen sticking to sunglasses, even as they ditch designer labels or peels of makeup. No matter what time of the day or night it is, a smart pair of glares is capable of making or breaking a personality.
    There are ray bans glasses two categories of people, the ones who love Ray Bans and the ones who don’t. For those who do, no reasons are required to sport one of these classic shades, and for the latter, give them a try. You won’t regret your decision.Like one cheap ray ban sunglasses must see the Eiffel Tower once in a lifetime, it is a must to own a pair of Ray-Ban sunglasses once in your life! There may be numerous fancy designer brands of sunglasses doing the rounds, but none has reached the iconic status enjoyed http://www.ray-bansunglasseswarbyparker.com by Ray-Ban for decades.
    Always remember that by taking good care of your Ray-Ban sunglasses, you are helping them and yourself to look and perform great. Like any other equipment, sunglasses too require good care and regular clean-up and maintenance to last long and cheap ray bans stay in premium condition.It’s time to face the urban jungle. The Camouflage, aka Camo prints are in full force this summer season. From Milan Fashion Week to FTV models, from men to women – everyone is going wild with the Camo.Whiel the military-inspired motif ray ban eyeglasses was always a favourite with men, it’s selling like hot cakes for women too now.Design inspiration
    World’s leading eyewear brand, Ray-Ban is not only about fashion and style but also about the warby parker high quality, effective functionality and latest technology. Designed with different patterns and colours, these single vision eyeglasses or fashionable shades are out to enchant the world. You can view and buy these shades at LensKart.com. LensKart is India’s leading online shopping portal which sells hundreds of eyewear brands from premium to low priced. The site is quite famous among people since here glasses and shades corresponding to every outfit and ray-ban sunglasses occasion are available.

    ReplyDelete
  3. If you have a desire to follow this blog and use all the information here you are on the right track. Use it essay writing company I am pleased.

    ReplyDelete
  4. Great stuff, I found this article on google, and it's a complete guide,keep the good work going.
    www.office.com/setup

    ReplyDelete
  5. Thank you for your post. This is excellent information. It is amazing and wonderful to visit your site.

    Best Salesforce Training Institute in Noida
    Best Salesforce Admin Training Institute in Noida

    ReplyDelete
  6. That's a great informative post. I like it. if anybody an interested to buy a kilt. so you can read my post.it is a good informative post for yours. You can get a premium quality custom fit Tactical kilt form Kilt Master. you can like this.

    ReplyDelete

  7. If you are wondering for professional Health Fitness Tips to maintain your body and attract your buddy. Then Get the best Information & oil from us.

    Fitness tips |Healthy Oils |Fitness |CBD oil |Health Fit Beauty

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. Click safety notes - for articles on health, environment and safety topics.

    https://s3.amazonaws.com/webs-urls/safetynotes/Construction-Safety.html
    https://storage.googleapis.com/webs-urls/safetynotes/Oil-And-Gas-Safety.html
    https://social.msdn.microsoft.com/profile/safetynotes/
    https://social.technet.microsoft.com/Profile/safetynotes

    ReplyDelete
  10. Hi Guys. Please contact us if you got any quires or any confusions about Baby products. We would be honored if We can help you.

    ReplyDelete
  11. نجار بالمدينة المنورة
    معلم نجار بالمدينة المنورة من الكوادر الهام وجودها في شركتنا فهو الذي يقوم بفك وتركيب جميع أنواع الأثاث، بجانب أن شركات نقل عفش بالمدينة المنورة تستعين به في جميع أعمال النقل التي تقوم بها، كما أنه يقوم بتركيب المطابخ بكافة أنواعها فهو يعتمد على خبرته في كل عمل يقوم بتنفيذه.

    ReplyDelete
  12. Great Article! Thanks for sharing this types of article is very helpful for us! If you have any type of pain like chronic pain, back pain etc.
    Best Pharmacy Shop

    ReplyDelete
  13. Very Nice Blog!!! Thanks for Sharing Awesome Blog!! Prescription medicines are now easy to purchase. You can order here.
    Buy Soma 350mg
    Order soma online
    buy Ambien 5 mg online
    buy Ambien online
    buying Gabapentin COD
    Buy Gabapentin cod online

    ReplyDelete
  14. Great Article! Thanks for sharing this types of article is very helpful for us! Prescription medicines are now easy to purchase. You can order here.

    Buy Gabapentin Cash on delivery
    Buy Gabapentin Online
    order Gabapentin 400mg online
    order Gabapentin 300mg online

    ReplyDelete

  15. Thanks for this informative blog.There are online pharmacies such as ours that can help you with medicines along with prescription
    buy Xanax 1mg pills online
    buy Alprazolam online

    order Xanax cash on delivery

    order Alprazolam cash on delivery

    ReplyDelete
  16. Very Nice Blog!!! Thanks for Sharing Awesome Blog!! Prescription medicines are now easy to purchase. You can order here.
    Buy Gabapentin Cash on delivery
    Buy Gabapentin Online
    how to order Gabapentin 300mg online
    Gabapentin 600mg online

    ReplyDelete
  17. Modafinil Provigil is online UK based pharmacy store offers high-quality FDA approved, safe and effective sleeping pills UK at cheap price & fast delivery.

    buy zopiclone online

    buy Diazepam UK

    buy xanax UK

    ReplyDelete
  18. To reduce the risk of anxiety and sleep problems, including depression and suicidal thoughts, adults should follow a balanced sleep-wake cycle. Buy

    xanax for anxiety from a registered online pharmacy at reasonable prices.



    Buy Xanax Online

    Tramadol for sale

    Sleeping Pills UK Online

    diazepam for sale

    Buy zolpidem Online

    xanax for anxiety

    Buy Zopiclone Online UK

    ReplyDelete
  19. Are you looking for online sleeping pills UK? Visit Our UK Pharmacy to get the best sleeping pills at the lowest prices with a 100% guaranteed delivery.
    buy zopiclone online
    buy xanax UK
    buy zopiclone 7.5mg

    ReplyDelete
  20. Legit Online Drug Supplier Welcome legit online drugstore buy all your pills here, cocaine for sale online, buy ecstasy, amphetamine pills, crack, cocaine.

    Link: Buy Cocaine online

    Link: Buy Pure Grade Heroin online

    Link: Buy Fentanyl online

    Link: Buy GHB Powder online

    Link: Buy Amphetamine Powder online

    Link: Buy Marijuana online

    Link: Buy Tapentadol Tablets online

    Link: Cocaine Wholesale online

    Call: +1(614)-245 5317

    ReplyDelete
  21. really good and quality content that help its reader and also keep its reader in toch
    Sattamatka

    ReplyDelete
  22. Mozzarella cheese available at very high quality.
    Nothing is more tasty than this

    ReplyDelete
  23. Hi! Nice blog. We are also offering you QuickBooks Customer Service Phone Number. If you need any help regarding QuickBooks issues, dial 1-855-756-1077 for instant help.

    ReplyDelete
  24. Best business software consulting in UAE, KSA, and Bahrain.
    Zoho software consulting services.

    Zoho Software Maintenance Services

    ReplyDelete
  25. I saw your site to be epic for my necessities. It has reasonable and solid posts. I've executed by a wide edge an epic piece of them and took in a ton from them. You're accomplishing some stunning work. Grateful to you fit for making a titanic shocking site. The Printer not Activated Error Code 30 because of wrong printer is set as the default printer and driver is missing. Contact our executive and we help you to fix Error Code -30.

    ReplyDelete
  26. Nice article great information its really helpfull


    ReplyDelete
  27. Nice Post!
    If you have unwanted pregnancy issue then you can buy abortion pill online an terminate your pregnancy at home...

    ReplyDelete
  28. Talk to Best Astrologer
    AstrologyKart is the best astrology website for online astrology predictions from the best astrologers of India. Chat with an astrologer in India online & also talk to best experienced astrologers online anytime at AstrologyKart.

    ReplyDelete
  29. Talk to Astrologers Online
    If you want to talk to astrologers online in India, then Astrology Kart has the best astrologers to provide accurate astrology predictions online at a very affordable price rates.

    ReplyDelete
  30. Free Astrology Advice online
    AstrologyKart is the best astrology website for online astrology predictions from the best astrologers of India. Chat with an astrologer in India online & also talk to best experienced astrologers online anytime at AstrologyKart.

    ReplyDelete
  31. Mobile tower installation in Nagaland
    Looking for the best Mobile Tower Installation in Nagaland? And its local areas for improved network facility in the regions of Nagaland. Call 7864805461

    ReplyDelete
  32. Mobile tower installation in Uttar Pradesh
    Mobile tower installation in Uttar Pradesh, Tower installation in UP, Mobile Tower Installation, We deliver the best tower installation in whole areas of Uttar Pradesh.

    ReplyDelete
  33. Best Ayurvedic Treatment
    Ayurvedic Hospital in Dhanbad
    Call Us at +91 9204900900, Kerala Ayurveda Dhanbad is one of the Best Ayurvedic Hospital, Providing Unbeatable Ayurvedic Treatments in Dhanbad.

    ReplyDelete
  34. Best Ayurvedic Treatment Ranchi
    Our Best Ayurvedic doctors in Ranchi are there to help you. Kerala Ayurveda Ranchi Also provides the best Ayurvedic infertility treatment in Ranchi.

    ReplyDelete
  35. Best Ayurvedic Treatment in Kanke
    Kerala Ayurveda Ranchi has its branch on Kanke and delivering the Ayurvedic treatment for various diseases. To book an appointment call now at +91 9204900900.

    ReplyDelete
  36. love your website
    leather jackets lover visit my website
    https://www.aspireleather.com/product/stranger-things-nancy-wheeler-jacket/

    ReplyDelete
  37. I had been on Ritalin and all sorts of anti depressants but when I started taking Tramadol I was able to drop everything and stick with one drug to do it all.

    ReplyDelete
  38. This medication has really worked for me! I seem to be calmer and not as distracted.

    ReplyDelete
  39. Thanks for sharing such a wonderful information.

    ReplyDelete
  40. This medication has saved my life from suffering from acute muscle spasms.

    ReplyDelete
  41. Clip Asia is commonly known for providing Clipping Path Service. Image Editing Service that consists of for Image Clipping Path Service, White Background for Image, Shadow | Reflection, Masking, Color Adjustment, Coloring, Invisible Mannequin, Retouching, Jewelry Image Editing, Dust Removal, Product Image Editing, Image Cropping | Resizing, Ghost Mannequin Services.

    ReplyDelete
  42. Nice articles love this post you can also view my blog etizolam

    ReplyDelete
  43. I appreciate you for providing such fantastic information.




    ReplyDelete