Skip to content

Commit

Permalink
LL ID #3984 + LL ID #4008: Screenshots + Collective Updates (#663)
Browse files Browse the repository at this point in the history
* Self-QA Updates

Adding workshop changes to further align with the Self-QA checklist.

* Update adb-free-container-setup.md

* Post-Testing Edits V1

* Update adb-free-container-setup.md

* Post-Testing Changes V2

* Updating Screenshots

* WMSID# 11693: Adding the initial workshop structure.

* Update adb-free-container-setup.md

* Update adb-free-container-setup.md

* [WMS ID #11029] DB Collective - JSON Duality Search

* WMS ID #11029: Minor fix

* Update manifest.json

* LL ID #4004: Add JSON Duality Intro

* LL ID# 4004: Minor Updates

* LL ID #4004: Minor updates.

* WMS ID #11693: Revising the workshop structure.

* WMS ID# 11693

* HOL 46

* DB Collective - JSON Updates

* LL ID #4004: DB Collective Changes

* OCW & DB Collective Updates

* Update new-duality-views-15.md

* Update new-duality-views-15.md

* Update new-duality-views-15.md

* Update new-duality-views-15.md

* Update new-duality-views-15.md

* Update new-duality-views-15.md

* LL ID #3984: Formatting Changes

* HOL 46 Technical Fixes

* Update inst-auth-container-setup.md

* DB Collective + OCW 24 Updates

* Update manifest.json

---------

Co-authored-by: William Masdon <[email protected]>
Co-authored-by: Hope Fisher <[email protected]>
  • Loading branch information
3 people authored Aug 28, 2024
1 parent 9b4fc02 commit 5bf6a19
Show file tree
Hide file tree
Showing 15 changed files with 150 additions and 63 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified 23aifree/adb-free-container-setup/images/podman-compose-up.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified 23aifree/adb-free-container-setup/images/podman-load-image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
38 changes: 20 additions & 18 deletions 23aifree/adb-free-container-setup/inst-auth-container-setup.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Install Oracle Autonomous Database 23ai Free Docker Image
# Install Oracle Autonomous Database 23ai Free Container Image

## Introduction
In this lab, you will experience just how easy it is to get started with the Oracle Autonomous Database 23ai Free Container Image. One launched, we will show you how to take advantage of the developer tools available to you, as we show you how to access SQL Developer Web & APEX--without any additional installations!
In this lab, you will experience just how easy it is to get started with the Oracle Autonomous Database 23ai Free container image. Once launched, we will show you how to take advantage of the developer tools available to you, as we show you how to access SQL Developer Web & APEX--without any additional installations!

**_Estimated Time: 30 minutes_**

### **Objectives**
In this lab, you will:

* Launch the Docker container image.
* Launch the container image.
* Connect to your Autonomous Database.
* Access SQL Developer Web & APEX.

Expand All @@ -34,10 +34,12 @@ In the LiveLabs Sandbox, we will download the image from an OCI bucket. However,
wget https://objectstorage.ca-toronto-1.oraclecloud.com/p/GDCjmPfuRMx-juvDGT0Mn7ZsaI_O5y_PsGg41xcLVVl8vewGOm6Ns4zeLsTPAr3p/n/c4u04/b/apex-images/o/configuration-files.zip -P /tmp
# Opening the zip file.
unzip -q /tmp/installation-files.zip
unzip -q /tmp/configuration-files.zip
</copy>
```
![Download container image](images/download-image.png)
![Download container image](images/download-configuration-files.png)
2. **Load the image into the podman catalog. (~5 mins)** Podman-load copies the image from the local docker archive into the podman container storage. This will take about 5 minutes--let's review the YAML file in the meantime.
Expand All @@ -47,7 +49,7 @@ In the LiveLabs Sandbox, we will download the image from an OCI bucket. However,
podman load -i adb-free-23ai.tar.gz
</copy>
```
![Load image into podman catalog](images/podman-load-image.png)
![Load image into podman catalog](images/podman-load.png)
3. **Review the YAML file.** Run the following command to learn more about how the YAML file helps launch the container image.
```
Expand Down Expand Up @@ -103,30 +105,30 @@ In the LiveLabs Sandbox, we will download the image from an OCI bucket. However,
podman ps --format "{{.Names}} {{.Status}}"
</copy>
```
![Check container status](images/check-container-status)
![Check container status](images/check-container-status.png)
6. **Confirm the files were pre-loaded into the container.**
```
<copy>
podman exec -it oracle_adb-free_1 ls /u01/mount-files
podman exec -it oracle_adb-free_1 ls /u01/
</copy>
```
![PODMAN_CONFIRM_PRELOADS](images/aivs_lab1_task1_step8.png)
![PODMAN_CONFIRM_PRELOADS](images/check-file-mounts.png)
7. **Relocate tnsnames.ora in the container.** 'tnsnames.ora' is a configuration file, storing the database details necessary for connection. We're moving the file into a directory that's meant for our database for easy connection.
```
<copy>
podman exec -it oracle_adb-free_1 cp /u01/app/oracle/wallets/tls_wallet/tnsnames.ora /u01/app/oracle/product/23.0.0.0/dbhome_1/network/admin/tnsnames.ora
</copy>
```
![PODMAN_EXEC](images/aivs_lab1_task1_step9.png)
8. **Confirm ORDS is running.**
8. **Confirm ORDS is running.** The 'jps' command lists out all of the java proceses running on the host. We're then filtering that list on the term 'ords'.
```
<copy>
podman exec -it oracle_adb-free_1 jps -l | grep ords
</copy>
```
![See if ORDS is running.](images/check-ords.png)
9. **Configure the APEX image.** We'll first need to redirect APEX to use the images behind our firewall. Run this command in the terminal to do so. This is only required for APEX use in Livelabs.
Expand All @@ -141,27 +143,27 @@ In the LiveLabs Sandbox, we will download the image from an OCI bucket. However,
Oracle Autonomous Database Free has APEX and ORDS (a.k.a Database Actions) preinstalled. Let's see how you can get started!
1. **Open Google Chrome.** Click Activities >> Google Chrome icon, to open a new Chrome window.
[Insert gif]
2. **Launch ORDS.** Paste the following URL into your Chrome browser to Launch ORDS.
```
<copy>
https://localhost:8443/ords
</copy>
```
![ORDS landing page](images/ords-landing.png)
3. **Sign into ORDS.** <br/> <br/>
3. **Launch SQL Developer Web.** You now have access to Database Actions! This is where you'll find both APEX and SQL Developer Web. For now, we'll only launch SQL Developer Web.
![PODMAN_PS](images/aivs_lab1_task2_step5.png)
4. **Sign into ORDS.** <br/>
**Username -** admin<br/>
**Password -** Welcome_12345 (or the custom password you specified in Task 1, Step 5.)
![Sign into DB Actions](images/sign-in-ords.png)
4. **Launch SQL Developer Web.** You now have access to Database Actions! This is where you'll find both APEX and SQL Developer Web. For now, we'll only launch SQL Developer Web.
![PODMAN_PS](images/aivs_lab1_task2_step5.png)
5. **Sign-in to SQL Developer Web.** <br/>
**Username -** admin <br/>
Expand Down
14 changes: 2 additions & 12 deletions 23aifree/introduction/intro-aivs-adb.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,15 @@

## About the Workshop

With Oracle Autonomous Database Free, you get to explore the newest features of Oracle Database 23ai at no-cost! This workshop guides you through the container image installation to get started in your own environment, without requiring access to Oracle Cloud Infrastructure Console or to the internet.
With Oracle Autonomous Database Free, you get to explore the newest features of Oracle Database 23ai at no-cost! In this workshop, we'll show you how to get started by installing the ADB Free 23ai container image, which requires no access to Oracle Cloud Infrastructure Console or the internet.

After installation, you'll learn how to further extend the capabilities of the Autonomous Database by accessing APEX, and SQL Developer Web. Once your environment is set for development, you'll (introduce the vector search activity) and see just how easy it is to leverage AI Vector Search.
After installation, you'll learn how to further extend the capabilities of the Autonomous Database by exploring Oracle REST Data Services. You'll be using SQL Developer Web to experience how Oracle AI Vector Search can take your data to the next level.

### **About the Oracle Autonomous Database 23ai Free Container Image**
Oracle Autonomous Database provides an easy-to-use, fully autonomous database that scales elastically and delivers fast query performance. As a service, Autonomous Database does not require database administration. Autonomous Database provides a fully managed Oracle Database that is available on Oracle Cloud Infrastructure.

The Oracle Autonomous Database Free Container Image provides an alternative to run Autonomous Database in a container in your own environment, without requiring access to Oracle Cloud Infrastructure Console or to the internet. When you run Autonomous Database in a container, the container provides a local, isolated environment with additional options for development, testing, and exploration of Oracle Autonomous Database features.


<!-- ### **Tools - SQLcl**
Oracle SQL Developer Command Line (SQLcl) is a modern, free command line interface for Oracle Database. It allows you to interactively or batch execute SQL and PL/SQL. SQLcl provides in-line editing, statement completion, and command recall for a feature-rich experience, all while also supporting your previously written SQL*Plus scripts.
### **Tools - Database Actions**
Formerly known as SQL Developer Web, Database Actions brings you your favorite Oracle Database desktop tool’s features and experience to your browser! Delivered as a single-page web application, Database Actions is powered by Oracle REST Data Services (ORDS). Database Actions offers, a worksheet for running queries and scripts, the ability to manage and browse your data dictionary, a REST development environment for your REST APIs and AUTOREST enabled objects, an interface for Oracle’s JSON Document Store (SODA), a DBA console for managing the database, a data model reporting solution, and access to PerfHub.
### **Tools - APEX**
Oracle APEX is the world's most popular enterprise low-code application platform that enables you to build scalable, secure web and mobile apps, with world-class features, that can be deployed anywhere – cloud or on premises. Using APEX, developers can quickly develop and deploy compelling apps that solve real problems and provide immediate value. You don't need to be an expert in a vast array of technologies to deliver sophisticated solutions. Focus on solving the problem and let APEX take care of the rest. -->

**_Estimated Time: 90 minutes_**

Expand Down
5 changes: 3 additions & 2 deletions 23aifree/vector-search/traditional-search.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ In this lab, you will quickly configure the Oracle Autonomous Database Free 23ai
In this lab, you will:

* Configure a clothing retail schema.
* Compare the performance of traditional search vs. vector search.
* Introduce the traditional search dilemma.


### **Prerequisites**
This lab assumes you have:
Expand Down Expand Up @@ -47,7 +48,7 @@ As a retailer, you want customers to easily search your catalog for the clothing
1. **Return to SQL Developer Web.** Open Google Chrome (Activities >> Chrome Icon) to return to SQL Developer Web.
[insert gif]
2. **Review the products table.**
```
<copy>
Expand Down
18 changes: 3 additions & 15 deletions db-23ai-fundamentals/intro/security-intro-15.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Introduction

Welcome to the Oracle Database Security workshop for Oracle Database 23ai! In this workshop, we will explore some of the new security features introduced in Oracle Database 23ai, focusing on Security Firewall, Schema Level Privileges, and the Developer Role. By the end of this lab, you will have a deeper understanding of how these features can help improve the security of your database environment. This section will be updated over time. If you'd like to see a specific feature added, tag me on X (twitter) with your suggestion! [@Killianlynchh](https://twitter.com/Killianlynchh)
In this workshop, we introduce you to a newly released feature of Oracle Database 23ai--_Schema-Level Privileges_. Previously, developers had to either give users full-access to the database or manually grant user privileges to each database object in a schema. With Oracle Database 23ai, developers can now grant privileges at the schema-level--making it easier to secure your database.

## About Oracle Database 23ai

Expand All @@ -11,18 +11,6 @@ Users of Oracle Database 19c and 21c can directly upgrade to Oracle Database 23a
Check out this workshop for free access to two databases and a hands on guide to get some experience with upgrading:
[Hitchhiker's Guide for Upgrading to Oracle Database 19c & Oracle Database 23ai](https://livelabs.oracle.com/pls/apex/dbpm/r/livelabs/view-workshop?wid=3943)

### **New Security Features**

This section explores some of the new Security features in Oracle Database 23ai.
* **SQL Firewall:**
- SQL Firewall offers real-time protection against common database attacks by monitoring and blocking unauthorized SQL and SQL injection attacks from inside the database.

- **Schema Level Privileges:**
- Prior to Oracle Database 23ai, managing schema privileges required more administration efforts. With schema-level privileges, administrators can easily reduce the overhead involved in granting and managing privileges, and improve security at the same time.

- **Developer Role:**
- The Developer Role provides a comprehensive set of system privileges, object privileges, predefined roles, PL/SQL package privileges, and tracing privileges required by application developers.


You may now proceed to the next section.

Expand All @@ -36,6 +24,6 @@ You may now proceed to the next section.

## Acknowledgements
* **Author** - Killian Lynch, Database Product Management
* **Contributors** - Dom Giles, Distinguished Database Product Manager
* **Last Updated By/Date** - Killian Lynch, April 2024
* **Contributors** - Dom Giles, Brianna Ambler, Database Product Management
* **Last Updated By/Date** - Brianna Ambler, August 2024

Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# Working with Schema-Level Privileges

## Introduction

Welcome to the Working with Schema-Level Privileges lab. In this lab, you will learn how to work with the new schema-level privilege management feature introduced in Oracle Database 23ai.

**_Estimated Lab Time: 10 minutes_**

### **Objective**
The objective of this workshop is to learn how to work with the schema-level privilege grant in Oracle Database 23ai and demonstrate its practical applications for managing access to application schemas in an easy way.

### **Prerequisites**
- Access to Oracle Database 23ai.
- Basic understanding of database schemas and privileges is recommended but not required.

## Task 1: Understanding Schema-Level Privileges

1. Before we get into the code examples, let's briefly talk about the traditional methods of privilege management in Oracle databases.

* **Individual Privilege Grants**: This involves granting individual privileges on each table or view in the application schema. While granular, it's cumbersome and could cause user errors, especially with schema changes.

* **ANY Privileges**: Granting "ANY" privileges (e.g., `SELECT ANY TABLE`) provides broad access but compromises security by granting excessive permissions.

* Oracle Database 23ai introduces a simpler approach: **Schema-Level Privileges**. This allows granting privileges at the schema level, offering a balance between granularity and convenience.

## Task 2: Benefiting from Schema-Level Privileges

1. From the Autonomous Database home page, **click** Database action and then **click** SQL.
![click SQL](images/im1.png " ")

2. Let's now look at the syntax and usage of schema-level privileges in Oracle Database 23ai. First, we'll add a couple of test users.

```
<copy>
drop user if exists bob cascade;
drop user if exists sally cascade;
create user bob identified by Oracle123long;
create user sally identified by Oracle123long;
</copy>
```
![drop and create the needed users for the lab](images/im2.png " ")
Now we can grant our bob user various privileges to other users or roles.
```
<copy>
-- tables, views, and materialized views
grant select any table on schema sally to bob;
grant insert any table on schema sally to bob;
grant update any table on schema sally to bob;
grant delete any table on schema sally to bob;
-- procedures, functions, packages, and sequences
grant execute any procedure on schema sally to bob;
grant select any sequence on schema sally to bob;
</copy>
```
![grant the schema level privileges](images/im3.png " ")
These grants provides user bob with select, insert, update, delete, execute any procedures, functions, packages, and select sequence privileges on all tables and views within the schema sally.
3. Schema-level privileges dynamically adapt to schema changes. If new tables or views are added to the schema, users granted schema-level privileges instantly gain access without additional management.
4. Oracle Database 23ai simplifies privilege management with dedicated views. We can use views like `DBA_SCHEMA_PRIVS` to check the schema-level privileges granted to users. Others include ROLE\_SCHEMA\_PRIVS, USER\_SCHEMA\_PRIVS, and SESSION\_SCHEMA\_PRIVS.
```
<copy>
SELECT * FROM DBA_SCHEMA_PRIVS WHERE GRANTEE = 'BOB';
</copy>
```
![check the grantees](images/im4.png " ")
5. Just as expected, we can revoke the privileges too. Let's revoke bobs privileges on sally's schema
```
<copy>
-- tables, views, and materialized views
revoke select any table on schema sally from bob;
revoke insert any table on schema sally from bob;
revoke update any table on schema sally from bob;
revoke delete any table on schema sally from bob;
-- procedures, functions, packages, and sequences
revoke execute any procedure on schema sally from bob;
revoke select any sequence on schema sally from bob;
</copy>
```
![check the grantees](images/im5.png " ")
## Task 3: Understanding Advanced Privilege Management
1. You can also grant schema-level privileges on schemas without special privileges. However, granting privileges on other schemas requires additional privileges like GRANT ANY SCHEMA PRIVILEGE.
3. In this lab, you've explored the schema-level privilege management in Oracle Database 23ai. By using schema-level privileges, you can drastically reduce the management and administration needed to grant schema privileges prior to 23ai and improve security through their use.
4. We can clean up from the lab by dropping our tables.
```
<copy>
drop user if exists bob cascade;
drop user if exists sally cascade;
</copy>
```
You may now **proceed to the next lab**
## Learn More
- [Oracle Database 23ai Documentation](https://docs.oracle.com/en/database/oracle/oracle-database/index.html)
- [Oracle Blog - Exploring Schema-Level Privileges](https://blogs.oracle.com/cloudsecurity/post/schemalevel-privilege-grants-with-database-23c)
## Acknowledgements
* **Author** - Killian Lynch, Database Product Management
* **Contributors** - Dom Giles, Distinguished Database Product Manager
* **Last Updated By/Date** - Killian Lynch, April 2024
Original file line number Diff line number Diff line change
@@ -1,34 +1,22 @@
{
"workshoptitle": "Security Quick Start",
"workshoptitle": "Oracle 23ai Quick Start: Schema Level Privileges",
"help": "[email protected]",
"tutorials": [
{
"title": "Introduction",
"description": "This is an introduction to security in 23ai",
"description": "This is an introduction to Schema Level Privileges",
"type": "livelabs",
"filename": "../../intro/security-intro-15.md"
},
{
"title": "Get Started with LiveLabs",
"filename": "../../intro/green-button-setup.md"
},
{
"title": "Lab 1: SQL Firewall",
"description": "Fortify your database security with SQL Firewall, protecting against unauthorized access and potential threats.",
"type": "livelabs",
"filename": "../../new-sql-firewall/new-sql-firewall.md"
},
{
"title": "Lab 2: Schema Level Privileges",
"title": "Lab 1: Schema Level Privileges",
"description": "Gain insights into schema-level privileges management, enhancing control and security at a granular level.",
"type": "livelabs",
"filename": "../../new-schema-level-privileges/new-schema-level-privileges.md"
},
{
"title": "Lab 3: Developer Role",
"description": "Establish and configure a dedicated developer role, streamlining development activities within the database.",
"type": "livelabs",
"filename": "../../new-developer-role/new-developer-role.md"
"filename": "../../new-schema-level-privileges/new-schema-level-privileges-15.md"
},

{
Expand Down

0 comments on commit 5bf6a19

Please sign in to comment.