Vue et problème de droits [ Oracle ] - SQL/NoSQL - Programmation
Marsh Posté le 12-07-2007 à 15:31:16
Parce que SUNOPSIS a le droit à l'instruction "create" surtout. 
 
Je crois même que t'as le droit de créer une vue sur une table om tu n'as pas le droit de faire SELECT dessus. 
Par contre, tu ne pourras pas créer une vue si t'as pas l'autorisation CREATE dans la base. 
 
PS : Même mieux, si tu as des informations sensibles dans une table, tu peux créer une vue dessus ne laissant pas apparaître les informations sensibles, mettre un grant à tout le monde sur la vue, et faire un deny à tout le monde sur la table : les gens pourront lire la table à travers la vue, sans jamais pouvoir accéder à la table directement (et donc tomber sur les infos sensibles). 
 
C'est notamment comme ça que je sécurise mes bases WEB : j'use et abuse de PS et vues auxquelles je donne des autorisation à mon user "web". Puis le lui colle un deny de tous les autres objets. Ceci dit, je fais ça sous SQL Server, je ne sais pas ce que ça donne avec Oracle, mais le fonctionnement devrait être le même.
Marsh Posté le 12-07-2007 à 15:48:08
Désolé mais j'ai beau relire 3 fois ton message, je ne vois pas de réponse à ma question donc je me suis certainement mal exprimé !
Je souhaite créer un ROLE 'majauto' qui a les droits pour faire des SELECT sur certaines tables du SCHEMA de 'user2'.
J'affecte ce ROLE à un utilisateur SUNOPSIS.
Je n'arrive aps à créer de VUE sous le SCHEMA 'sunopsis' via les droits accordés par le ROLE 'majauto'
----
Si je ne passe pas par un ROLE pour attribuer les droits d'accès mais que j'autorise le SELECT directment sur le SCHEMA 'sunopsis'; je peux créer ma VUE.
Marsh Posté le 12-07-2007 à 15:58:20
ah ouais, je viens de relire mieux ton script. 
chelou ton machin. 
 
sunopsis n'aurait pas un autre rôle contradictoire à majauto ? 
 
quand tu lui enlèves le droit select, tu lui colle un DENY, ou tu ne fais que supprimer le GRANT ? 
 
effectivement, si tu colles un DENY sur le compte directement, même s'il a un GRANT via son rôle, c'est le DENY qui prime. 
 
(par contre, je pige pas le rapport entre le droit SELECT et l'autorisation de créer une vue... oracle serait-il encore plus pourri que ce que j'imaginais ?)
Marsh Posté le 12-07-2007 à 16:00:21
normalement, seul le propriétaire du schema a le droit de donner des privilèges sur ces objets. 
 
tu passes bien les grants avec le owner ?
Marsh Posté le 12-07-2007 à 16:34:28
alors pas de deny, juste des grant et des revoke jusqu'à présent. 
 
Pour passer les droits, j'utilise le compte sys as sysdba donc c'est peut être pour ça que ça déconne ! 
 
Je vais tester avec le compte du proprio 
Marsh Posté le 21-08-2007 à 17:20:27
bonjour je suis actuellement en stage et je commence a manipuler oracle 9i   
le probleme c ke je ne suis pas administrateur de ma base et je veu kand meme créer des base de donnée   
mais une fois tapez create database nom_base ; il me met "ORA-01031: privilèges insuffisants"   
je voulai savoir comment faire pour avoir tous les privileges  pour pouvoir créer ma base de donnée ou si il y a peut etre un login et mot de passe pour administrateur par defauts merci d'avance 
Marsh Posté le 21-08-2007 à 20:01:34
pas besoin de faire un create database sous oracle 
 
par defaut, ta base de donnée est celle de ton utilisateur courant, il lui faut juste le droit "resource" afin de pouvoir creer des objets ( si tu arrives a faire un create table, c'est tout bon ) 
 
objets sur lesquels tu aura plein pouvoir 
 
P.S. si tu te connectes en admin, le DBA va t'appeler Arthur ![[:ddr555] [:ddr555]](https://forum-images.hardware.fr/images/perso/ddr555.gif)
Marsh Posté le 22-08-2007 à 09:37:46
merci ajnag  
enfaite j'ai reussi a créer ma propre base ( et differents tables aussi) avec la console oracle enterprise manager mais je n'arrive a me connecter a oracle management server (OMS) alors ke je rentre bien l'utilisateur et le mot de passe  
aidez moi svp
Marsh Posté le 26-08-2007 à 08:33:00
bonjour 
j'ai reussi a importé une base de donnée mais je ne sais pas comment la lire ni la trouvé donc aidez mois vp merci d'avance
Marsh Posté le 27-08-2007 à 13:31:55
arrives-tu à te connecter en sql+ ?
Marsh Posté le 10-09-2007 à 11:05:49
bonjour je veu me connecter a ma base oracle 9i via vb.net j'ecri le code suivant:  
 
 Imports Oracle.DataAccess.Client 
Imports System.Data 
Imports System.Data.OleDb 
Imports Microsoft.VisualBasic 
Public Class Form1 
    Inherits System.Windows.Forms.Form 
    Dim MyConnection As OleDbConnection 
    Dim MyCommand As OleDbCommand 
 
#Region " Code généré par le Concepteur Windows Form " 
 
    Public Sub New() 
        MyBase.New() 
 
        'Cet appel est requis par le Concepteur Windows Form. 
        InitializeComponent() 
 
        'Ajoutez une initialisation quelconque après l'appel InitializeComponent() 
 
    End Sub 
 
    'La méthode substituée Dispose du formulaire pour nettoyer la liste des composants. 
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) 
        If disposing Then 
            If Not (components Is Nothing) Then 
                components.Dispose() 
            End If 
        End If 
        MyBase.Dispose(disposing) 
    End Sub 
 
    'Requis par le Concepteur Windows Form 
    Private components As System.ComponentModel.IContainer 
 
    'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form 
    'Elle peut être modifiée en utilisant le Concepteur Windows Form.   
    'Ne la modifiez pas en utilisant l'éditeur de code. 
    Friend WithEvents Label1 As System.Windows.Forms.Label 
    Friend WithEvents Button1 As System.Windows.Forms.Button 
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() 
        Me.Label1 = New System.Windows.Forms.Label 
        Me.Button1 = New System.Windows.Forms.Button 
        Me.SuspendLayout() 
        ' 
        'Label1 
        ' 
        Me.Label1.Location = New System.Drawing.Point(184, 24) 
        Me.Label1.Name = "Label1" 
        Me.Label1.TabIndex = 0 
        Me.Label1.Text = "connection2" 
        ' 
        'Button1 
        ' 
        Me.Button1.Location = New System.Drawing.Point(152, 88) 
        Me.Button1.Name = "Button1" 
        Me.Button1.TabIndex = 1 
        Me.Button1.Text = "Button1" 
        ' 
        'Form1 
        ' 
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) 
        Me.ClientSize = New System.Drawing.Size(292, 273) 
        Me.Controls.Add(Me.Button1) 
        Me.Controls.Add(Me.Label1) 
        Me.Name = "Form1" 
        Me.Text = "Form1" 
        Me.ResumeLayout(False) 
 
    End Sub 
 
#End Region 
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
        Dim str As String 
        Dim MyConnection = New OleDbConnection("Provider=oraoledb.oracle.1;UserID=rasinfotel;password=05051981;database=moustapha" ) 
        Try 
            MyConnection.Open() 
        Catch ex As Exception 
            MsgBox(" connection failed" ) 
            MsgBox("la connection a echouée" ) 
            MsgBox(ex.Source & " " & Err.Description) 
            str = "SELECT NOM FROM EMPL" 
            MyCommand = New OleDbCommand(str, MyConnection) 
            Dim a As String 
            Dim myReader As OleDbDataReader = MyCommand.ExecuteReader() 
            Do While myReader.Read() 
                a = myReader(0) 
            Loop 
            myReader.Close() 
            MyConnection.Close() 
        End Try 
    End Sub 
End Class 
 
et sa m'affiche connection echoué alors ke la base et l'utilisateur sont existant et sa m'affiche aussi  
 
""Une exception non gérée du type 'System.InvalidOperationException' s'est produite dans system.data.dll"" 
donc aider moi svp
Marsh Posté le 12-07-2007 à 10:31:59
Bonjour,
Je ne comprends pas pourquoi si j'ajoute des droits en passant par un role, je peux faire des select mais pas créer des vues se basant sur des select !
Compte Admin
-------------
grant select on dvpt.p_article to majauto;
grant majauto to sunopsis;
Compte Sunopsis
----------------
select * from dvpt.p_article;
--->OK
CREATE or replace VIEW article AS SELECT
* from
dvpt.p_article
;
Error report:
SQL Error: ORA-01031: privilèges insuffisants
Par contre :
Compte Admin
-------------
grant select on dvpt.p_article to sunopsis;
Compte Sunopsis
----------------
select * from dvpt.p_article;
--->OK
CREATE or replace VIEW article AS SELECT
* from
dvpt.p_article
;
CREATE or replace VIEW succeeded.
Ca fonctionne ...
Une idée ?
Merci
Message édité par jeoff le 12-07-2007 à 10:33:34
---------------
Mon blog séduction