Forum » Programska oprema » [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.
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 ()
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.
Super bi bilo tudi, da bi to lahko naredil že installer - dodelil pravice mapi v katero program in druge komponente instaliram.
Mavrik ::
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.
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 :
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Varnost mreznih mapOddelek: Informacijska varnost | 2032 (1551) | videc |
» | Windows 7 Installer (64-bit) - težaveOddelek: Programska oprema | 2994 (2384) | fr!Xy |
» | Nedevoljen dostop do mrežnih datotekOddelek: Operacijski sistemi | 1054 (1054) | ABX |
» | Ne morem izbrisati direktorijaOddelek: Pomoč in nasveti | 1108 (1053) | TheJack |
» | Visual Basic.NET - za začetnika ?Oddelek: Programiranje | 4799 (3918) | mHook |