» »

[SQlite] Pravice

[SQlite] Pravice

mare92 ::

Napisan je program, ki kreira .sqlite bazo in jo nato spreminja.
Problem pa je v tem, da ko hočem pripraviti program da deluje, moram ročno spremeniti permissionse za userja na modify in write.

Bi bila kakšna možnost, da to naredi že sam program? Upam da se razumemo in hvala.
  • spremenil: Mavrik ()

Gandalfar ::

Lahko. Program poklice chmod oz. ekvivalent v drugem opracijskem sistemu in to stori.

mare92 ::

Bi šlo kaj bolj specifično? Najlepša hvala!

mare92 ::

Gre pa se za windowse(CACLS?).
Super bi bilo tudi, da bi to lahko naredil že installer - dodelil pravice mapi v katero program in druge komponente instaliram.

Mavrik ::

mare92 je izjavil:

Bi šlo kaj bolj specifično? Najlepša hvala!


A bi bil ti malo bolj specifičen? Na katerem OSu delaš? V katerem jeziku? Kako ustvariš bazo? Kaj pomeni da ni "read/write"? Kje maš bazo?

A bi dal KARKOLI na osnovi česa ti lahko pomagamo?
The truth is rarely pure and never simple.

mare92 ::

Se opravičujem.
Sam nisem programer, ampak pomagam dokončati nek projekt in iščemo rešitve.
Dela se na Win7, program mora delovati na vseh Windowsih.
Program je spisan v C-sharpu in v C++. Sam program ustvari SQL bazo.
Problem je, da sem naredil install, kateri skopira drugače 100% delujoč program. Problem je, ko se instalira v Program files, uporabnik enostavno nima pravic za spreminjanje te baze - je read only. Potem moram lastnosti in dajati uporabniku pravice v teh mapah, da deluje.
Aja, baza je načeloma v isti mapi(program files/program/).
Kot sem rekel, rad bi da je čimbolj user-friendly, če bi šlo. Se pravi instalacija, ki bi sama dodelila te pravica in bi vse delovalo.

Najlepša hvala še 1x.

Možnost bi bila tudi da imamo prednastavljeno prazno sql bazo, tako da je ne bi ustvarjal program.

Zgodovina sprememb…

  • spremenil: mare92 ()

luli ::

Ne vem, kateri installer uporabljaš! Če gre za VS2010, lahko narediš postinstall skripto, ki ti naredi pravice. Ta izkorišča, da install itak teče pod admin rights, in posledično še dodeli pravice datoteki. V kolikor datoteko ustvarja program sam (in se nahaja v mapi, do katere user nima pravic) mora le ta elevate-at pravice.

Primer :
namespace PostInstaller
{
    [RunInstaller(true)]
    public partial class PostInstall : System.Configuration.Install.Installer
    {
        public PostInstall()
        {
            InitializeComponent();
        }
        [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
        public override void Install(IDictionary stateSaver)
        {
            base.Install(stateSaver);
        }

        [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
        public override void Commit(IDictionary savedState)
        {
            base.Commit(savedState);
            var sid = new SecurityIdentifier(WellKnownSidType.BuiltinUsersSid, null);
            FileSecurity fs = File.GetAccessControl(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\xxxxxx\\xxxxxxxx.SDF");
            fs.AddAccessRule(new FileSystemAccessRule(((NTAccount)sid.Translate(typeof(NTAccount))).Value, FileSystemRights.FullControl, AccessControlType.Allow));
            File.SetAccessControl(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\xxxxx\\xxxxxxx.SDF", fs);
        }

        [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
        public override void Rollback(IDictionary savedState)
        {
            base.Rollback(savedState);
        }

        [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
        public override void Uninstall(IDictionary savedState)
        {
            base.Uninstall(savedState);
        }

    }

Zgodovina sprememb…

  • spremenilo: luli ()

mare92 ::

Uporabljal sem simpl program Smart Install Maker, kjer dvomim da lahko to naredim. Bom pa poskusil, drugače pa Visual Studio, če je to rešitev, hvala!

luli ::

To je rešitev! Skripto vgradiš takole : http://www.codeproject.com/Articles/195...

Zgodovina sprememb…

  • spremenilo: luli ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Varnost mreznih map

Oddelek: Informacijska varnost
152032 (1551) videc
»

Windows 7 Installer (64-bit) - težave

Oddelek: Programska oprema
152994 (2384) fr!Xy
»

Nedevoljen dostop do mrežnih datotek

Oddelek: Operacijski sistemi
51054 (1054) ABX
»

Ne morem izbrisati direktorija

Oddelek: Pomoč in nasveti
51108 (1053) TheJack
»

Visual Basic.NET - za začetnika ?

Oddelek: Programiranje
304799 (3918) mHook

Več podobnih tem