Oracle 中实现 Membership 机制

来源:互联网 发布:sentinel 1 数据下载 编辑:程序博客网 时间:2024/06/08 01:12

很多朋友呢,都说在 Oracle 上是无法实现 Membership 机制的,

不过很可惜的是,

本篇博文就是旨在告诉这些朋友们如何在 Oracle 数据库上实现 Membership 机制。

前面的一些博文呢,介绍了很多关于如何使用 C# 来操作 Oracle 数据库,

其中也涉及到了很多的关于在 Visual Studio 中如何完成对 Oracle 数据库的控制,

也写了很多关于 Membership ,以及 Roles 以及 Profile 这些内容的博文,

但是介绍都是在基于 Sql Server 数据库之上完成的,

(如果您还不熟悉如何在 Sql Server 上实现 Membership 的话,笔者前面有很多关于这一块的博文,

您可以先阅读那些在 Sql Server 上实现 Membership 机制的博文,然后再来看如何在这篇博文)

但是这一篇博文呢,我将会介绍如何在 Oracle 数据库之上使用 Membership 这套机制了,

首先呢,要完成在 Oracle 数据库之上使用 Membership 这套机制,还是需要有很多的准备工作的,

先来看环境吧,直接看我的环境的了,

我的环境呢,是 Win7 的系统(建议用 Server 版的系统),Visual Studio Team System 2008,

Oracle 11gR1 ,然后安装了最新版的 ODT.NET ,还是给个 ODT.NET 的下载地址

http://www.oracle.com/technology/global/cn/software/tech/dotnet/odt_index.html

安装了 ODT.NET 后,便可以再 Visual Studio 中直接建立与 Oracle 数据库的连接了,

您可以在“服务器资源管理器”中直接与 Oracle 建立连接

image

image

image

这样就很容易的在 Visual Studio 中建立了与 Oracle 数据库的连接,

而后就是要完成在 Oracle 数据库中注册对 Membership ,

这个呢,

您可以完全把他看做是通过使用 ASPNET_REGSQL.exe  来完成对 Sql Server 数据库的注册一样,

只不过这里实现的是对 Oracle 的注册而非 Sql Server ,

从前面可以看出我在 Visual Studio 中是使用的 Oracle 数据库中

预定的 SCOTT 用户进行的登录 Oracle 数据库,

由于要完成对 OracleASPNETProviders 的注册,必须在数据库中要有一定的权限,

然而仅 SCOTT 用户而言,权限不够,所以当然是无法注册成功的,

当然咯,您也完全可以使用 SYSTEM 用户,但是这个权限也大了点吧,

如果要完成对 OracleASPNETProviders 的注册,您在数据库中的用户必须要有如下权限,

  • Change notification

  • Create job

  • Create procedure

  • Create public synonym

  • Create role

  • Create session

  • Create table

  • Create view

  • Drop public synonym

  • Unlimited Tablespace

    下面呢就是要完成对 Oracle 数据库中 SCOTT 用户分配权限了,

    因为要实现给 SCOTT 用户分配权限的话,您必须先以 SYSTEM 用户进行登陆 Oracle 数据库,

    这个呢,很简单的,您只需要在 SqlPlus 下面以 SYSTEM 用户登录就 OK 了,

    然后执行下面的授权语句,

    GRANT CHANGE NOTIFICATION,

                CREATE JOB,

                CREATE PROCEDURE,

                CREATE PUBLIC SYNONYM,

                CREATE ROLE,

                CREATE SESSION,

                CREATE TABLE,

                CREATE VIEW,

                DROP PUBLIC SYNONYM,

                UNLIMITED TABLESPACE

    TO "SCOTT"

    image

    这样便可以完成对 Oracle 数据库中将要进行注册的用户 SCOTT 进行权限的分配,

    下面就开始注册 OracleASPNETProviders 了,

    从 Visual Studio 的 “工具”->“运行 SQL*Plus 脚本”,

    然后找到将要运行的脚本文件,这个脚本文件呢,

    您必须要安装 Oracle Provider For ASP.NET 这个组件才会有,

    然而在 ODT.NET 中一般都会继承这个组件进去,而且像比较高的版本的数据库,

    比如 10g 或者是 11g

    在安装数据库的时候便会同时安装 Oracle Provider For ASP.NET ,

    您必须找到您的 ODT.NET 安装目录,

    比如我的机器上是,

    D:\app\XiaoZhen\product\11.1.0\client_1\ASP.NET\SQL

    在这个目录下有很多的 .sql 文件,您可以发现其中有一个比较特殊的,

    image

    您可以直接运行这个脚本文件就可以完全注册您的 Oracle 数据库了,

    如果您使用记事本打开上面标记的这个 .sql 文件的话,

    您可以发现其实这个文件只不过是逐步的运行了其他的脚本文件而已,

    当然,如果您在完成了注册后又不想注册了,那么这个目录下呢也有一个文件,

    UninstallAllOracleASPNETProviders.sql

    这个文件呢就是用来取消注册的,

    下面就回到上面的 “运行 SQL*Plus 脚本“这个话题上来,

    image

    image

    image

    这样,便完成了在 Oracle 数据库中注册 Membership 机制了,

    下面就是要 Sql Developer 来查看一下上面所作的操作的结果吧,

    image

    可以看到在此处新建立了 14 个数据表(以前注册 Sql Server 时只创建 11 个数据表),

    这些数据表呢便是 Oracle 来支撑 Membership 这套机制时所需的表了,

    也可以看到其中有 USERS 表啊,有 MEMBERSHIP 表啊等等熟悉的东西,

    当然了,上面的注册过程呢,还创建了很多的存储过程和视图啊,索引这些的,

    不过在此就不多做介绍了,

    上面呢,便完成了在 Oracle 数据库中注册 Membership 机制,

    接下来就是应该介绍如何使用了,但是限于篇幅呢,在此不会就 Membership 机制的使用多做介绍,

    我所侧重的重点是如何在项目中使用在 Oracle 中注册的 Membership 机制,

    先是建立一个项目,然后打开其对应的 ”ASP.NET 配置工具(ASP.NET 网站管理工具)“

    切换到提供程序页上,

    image

    而后要选择”OracleMembershipProvider“和”OracleRoleProvider”,

    image

    但是此时还并没有完全建立好在 Oracle 数据库中使用 Membership 机制,

    比如,您可以将” ASP.NET 配置“工具切换到”安全“页面上,您会发现,

    image

    很明显,虽然指定了 Oracle 数据库提供程序,但是此时还无法连接上 Oracle 数据库,

    因为您还没有给出连接 Oracle 数据库的字符串,您当然无法连接上 Oracle 数据库啦,

    所以下面的操作就是,

    您可以先将您建立的这个 Web 项目部署到您自己的 IIS 上面,

    然后,

    image

    image

    修改上面画出的两个数据库连接字符串,比如我的将两个都改为

    DATA SOURCE=ORACLE;PERSIST SECURITY INFO=False;

    USER ID=SCOTT;Password=tiger;"

    这样的话,您再打开您的项目的 web.config 文件,

    您可以发现,

    image

    也就是说,我们上面对 IIS 里面对 Web 网站所作的操作全部都只是针对 web.config 进行的设置,

    如果您比较熟悉的话,您完全可以免去前面使用 IIS 来配置数据库连接字符串这一步,

    而直接在 web.config 中完成就 OK 了,

    此时在来将前面的 ”ASP.NET 配置工具“切换到 ”安全“页面上,

    image

    可以看到此时可以成功连接上 Oracle 数据库了,

    那么接下来就是使用 "ASP.NET 配置工具" 来完成一些操作了,

    比如启用 Forms 验证,比如创建一个角色,比如创建一个用户啊,

    以此来说明 Membership 在 Oracle 数据库上的成功使用,

    首先是启用 Froms 验证,

    image

    然后再创建一个用户,

    image

    创建了用户后,我们再从 Oracle 数据库中来验证刚才创建的用户 BaoBeiMe 是否创建成功,

    image

    从这里,便可以验证出在 Oracle 中已经成功的建立了一个成员资格,

    即添加了一个具有成员资格的用户 BaoBeiMe!!!

  • 0 0
    原创粉丝点击